这是代码,我有问题:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, android.view.View view,
int position, long id) {
if(listview.isItemChecked(position)){
}
if(listview.getCheckedItemCount()>1){
}
}
});
它一直说监听器必须覆盖超类方法,并且我不能在内部类中调用非final变量“listview”。我该如何调用listview.isItemChecked(position)呢?感谢
答案 0 :(得分:3)
我建议您阅读Java中final
的使用。从技术上讲,您可以通过在final
之前添加关键字ListView listview = ...
来解决此问题,因此final ListView listview = ...
。
但是,更好的选择是在OnItemClick
方法中使用传递给ListView的引用。参数AdapterView<?> Parent
对应于ListView,因此您可以使用以下代码:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, android.view.View view,
int position, long id) {
ListView lv = (ListView) parent;
if(lv.isItemChecked(position)){
// ...
}
if(lv.getCheckedItemCount()>1){
// ...
}
}
});