Estoy desarrollando una aplicación donde necesito mostrar un control de vista de lista. Solo estoy implementando el OnScrollListener
en mi actividad para controlar el contenido de mi lista pero no invoca el evento onScroll cuando configuro mi actividad. Si comento ese bloque, lo invoca bien. ¿Cómo resuelvo este problema?evento onScroll no se activa para listview
package com.Threadtest;
import com.Threadtest.main.myRunnable;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
public class TestList extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
ListView listview=(ListView)findViewById(android.R.id.list);
listview.setAdapter(adapter);
/*setListAdapter(adapter);
getListView().setOnScrollListener(this);*/
}
public void onScroll(AbsListView view,
int firstVisible, final int visibleCount, int totalCount) {
Log.i("TestList", "firstVisible="+firstVisible+" visibleCount="+visibleCount+" totalCount="+totalCount);
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if(loadMore) {
Log.i("TestList", "In Notify");
Thread thread = new Thread()
{
@Override
public void run() {
try {
this.sleep(10000);
runOnUiThread(new myRunnable(adapter,visibleCount));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
thread.start();
}
}
public void onScrollStateChanged(AbsListView v, int s) { }
class myRunnable implements Runnable
{
Aleph0 adapter;
public myRunnable(Aleph0 adapter,int visibleCount)
{
this.adapter=adapter;
this.adapter.count += visibleCount;
}
public void run() {
// TODO Auto-generated method stub
Log.i("TestList", "List Count="+adapter.count);
adapter.notifyDataSetChanged();
}
}
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() { return count; }
public Object getItem(int pos) { return pos; }
public long getItemId(int pos) { return pos; }
public View getView(int pos, View v, ViewGroup p) {
if(pos!=count-1)
{
TextView view = new TextView(TestList.this);
view.setText("entry " + pos);
return view;
}
TextView view = new TextView(TestList.this);
view.setText("Loading.. " + pos);
return view;
}
}
}
I'm confused. ¿Quiso decir que si omite 'getListView(). SetOnScrollListener (this)', no funciona? – dmon
Sí. Si omite el getListView(). SetOnScrollListener (esto) no se dispara. – ram
Correcto, si omite oyente, no se disparará. ¿Cuál es el problema real, ** desea disparar sin configurar el oyente?! ** –