3

这是代码,我有问题:

        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){

            }

        }
    });

它一直说侦听器必须覆盖超类方法,并且我不能在内部类中调用非最终变量“listview”。那么我应该如何调用 listview.isItemChecked(position) 呢?谢谢

4

1 回答 1

3

我建议您阅读finalJava 中的使用。从技术上讲,您可以通过添加关键字finalbefore来解决此问题ListView listview = ...,所以final ListView listview = ...

OnItemClick但是,更好的选择是在您的-method中仅使用传递的 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){
            // ...
        }

    }
});
于 2012-08-22T08:07:50.713 回答