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.isItemChecked(position) を呼び出すにはどうすればよいですか? ありがとう

4

1 に答える 1

3

Javaでの使用について読んでおくことをお勧めしますfinalfinal技術的には、の前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 に答える