android – onScroll事件没有为listview触发

我正在开发一个应用程序,我需要显示一些列表视图控件.我只是在我的活动中实现OnScrollListener以监视我的listview内容,但是当我为我的活动设置布局时它没有调用onScroll事件.如果我评论该块然后它调用它就好了.我该如何解决这个问题?
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;

        }
    }
}

解决方法

getListView().setonScrollListener(this)是将侦听器绑定到ListView所必需的. ListActivity类不提供绑定大多数侦听器的“自动”方式,它只提供绑定OnItemClickListener的自动方式.查看 ListActivity code.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...