TextViewと共に各行にチェックボックスを含むリストビューを設定しました。何らかの理由で、ボックスの1つを「チェック」すると、ListViewの反対側のボックスをチェックしているように見えます(つまり、トップボックスを選択すると、チェックボックスがオンのまま下部のチェックボックスが選択されます)。ListViewのチェックボックス - 最初のチェックボックスを選択すると最後のチェックボックスがチェックされます。
ありがとう!
TextViewと共に各行にチェックボックスを含むリストビューを設定しました。何らかの理由で、ボックスの1つを「チェック」すると、ListViewの反対側のボックスをチェックしているように見えます(つまり、トップボックスを選択すると、チェックボックスがオンのまま下部のチェックボックスが選択されます)。ListViewのチェックボックス - 最初のチェックボックスを選択すると最後のチェックボックスがチェックされます。
ありがとう!
ViewsはListViewでリサイクルされています。
このチェックボックスは、というアイデアがありません。あなたのアダプタ内の項目は、それが表す行のチェックボックスにすぎません。 リストビュー。現在表示しているデータセットのどの項目を「教える」ために何かをする必要があります。そのため、アダプタのデータとしてString配列のような単純なものを使用する代わりに、チェックボックスの状態を格納する新しいモデルオブジェクトを作成します。あなたはgetView()
内の行を返す前に、次に、あなたのような何かを行うことができます:
//somewhere in your class
private RowData getData(int position) {
return(((MyAdapter)getListAdapter()).getItem(position));
}
//..then in your adapter in getView()
RowData object = getModel(position);
if(object.isChecked()) {
myCheckbox.setChecked(true);
} else {
myCheckbox.setChecked(false);
}
//then retun your view.
ご回答いただきありがとうございます。私のListAdapterは完全に異なるクラスのfillData()メソッドにあります。それは間違っていますか? – jonstaff
@ jstaff107、いいえ、どこでもあなたのアダプターを持つことができます。 – LuxuryMode
クラス "RowData"はどこから来ているのですか? – jonstaff
ポストListViewコントロールアダプタやリソースXML – Spidy
あなたは、おそらくいくつかのコードを投稿する必要がありますが、共通する一般的な問題(ではないが、確かにそこにあるためにあなたのコードバグですが、Androidに新しいことがたくさんある人が気づいていないデザインのこと)、Android ListViewの再利用の仕方に関係している可能性があります。 – kabuko
私の目標は、ユーザーが1つまたは複数のチェックボックスを選択したときに表示される(gmailのような)メニューを作成することです。私はコードのどの部分を投稿するかを決める方法は本当に分かりませんが、私の「メニュー」を底に持っていくメソッドを取り除くと、問題はなくなります。どのようにガベージコレクションを実装する上の任意のアイデア? – jonstaff