我是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)。有任何想法吗? 提前谢谢。
答案 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);
// ....
}