行項目を動的に追加する ListView があります。各行には子の番号があります。今、私はこれらのチャイルドでクリックリスナーを設定しています。これらの子アイテムを最終的に保持するように求められます.
ここで isFree は最後の checkBox です。
isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if (isFree.isChecked()){...}
}
});
しかし、私はそれを良いプログラミングの実践とは感じていません。どの子がクリックされたかを検出する関数を使用したいので、getParent を使用してその行にアクセスし、次に getChildAt(index) を使用してその兄弟項目にアクセスできるようにする必要があります。これ:
isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
CheckBox tv=(CheckBox) getCurrentFocus();
TableRow row = (TableRow)tv.getParent();
TextView tv1=(TextView) row.getChildAt(5);
if (tv.isChecked()){...}
}
});
しかし、私がそれを使用すると、フォーカスされたアイテムは実際にはリストビューを返しますが、行にフォーカスされたアイテムが必要です。