0

この特定のクラスに実装されたカスタム Listview を取得しました。次のようになります。

[画像/テキストビュー/チェックボックス]

誰かがテキストをクリックして別のクラスを起動する必要がある場合、これは現時点では機能していますが、誰かがチェックボックスをクリックすると、すべてのチェックボックスの現在の状態を格納する配列を更新したいので、 onCheckedChanged メソッドを使用してそれを試しましたカスタム アダプター内では位置変数が最終的なものではないため、機能しません。そこで2つ質問

アダプター内の 1 は、チェックボックスの位置を取得する方法であるため、配列内の正しい位置を変更できます。

2 そうでない場合は、onClick の現在の機能を中断することなく、別の場所で配列を更新する別の方法です。

これが私のアダプタ内の onCheckedChanged です

CheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton but, boolean b) {
        // TODO Auto-generated method stub


        if(but.isChecked())
        {
            deleteList[???] = true;
        }else{
            deleteList[???] = false;
        }
    }

   });
4

1 に答える 1

1

このメソッドを見てください。任意のオブジェクトを含むビューにタグを設定できます。この場合、これは CheckBox の行に関連付けられた整数値である可能性があります。

したがって、CheckBox を作成するときは次のようになります。

but.setTag(new Integer(position));

これにより、if ステートメントが次のように変更されます。

if (but.isChecked()){
    deleteList[((Integer) but.getTag()).intValue()] = true;
} else {
    deleteList[((Integer) but.getTag()).intValue()] = false;
}

これが役立つかどうか教えてください!

于 2012-09-19T03:11:53.453 に答える