不调用Android的ListView的onScroll

时间:2013-12-10 12:14:11

标签: android-listview

我是Android和Java的新手。 我创建了一个自定义ListView,如下所示:

public class CustomEndlessListView extends ListView implements
        OnScrollListener, android.widget.AdapterView.OnItemClickListener, IReceiver {

然后我点击Eclipse上的'添加未实现的方法'选项。

结果如下:

public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {
    Log.d(TAG,"onScroll !!!!!");
}

没有@Override注释。 如果我手动添加@Override注释,我会得到:

  

此行有多个标记      - 实现android.widget.AbsListView.OnScrollListener.onScroll      - CustomEndlessListView类型的onScroll(AbsListView,int,int,int)方法必须覆盖超类方法

当我运行应用程序(没有@Override注释)时,永远不会调用此方法(onScroll)。有任何想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您必须通过调用setOnScrollListener注册滚动事件。由于您已在ListView子类中实现了OnScrollListener接口(这不是唯一的可能),您可以尝试以下内容:

public class MyActivity extends ListActivity {
    @override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom_list_layout);
        CustomEndlessListView lv = new CustomEndlessListView(this);
        lv.setOnScrollListener(lv);
        setListAdapter(lv);
    }
}

或者,您可以在CustomEndlessListView构造函数中注册事件:

public CustomEndlessListView(Context context) {
    // ....
    setOnScrollListener(this);
    // ....
}