![](/img/trans.png)
[英]Remove element from arraylist on checking and then unchecking the checkbox of checkbox listview
[英]Checkbox in ListView with odd checking behaviour
我是Java和Andriod開發的新手。
我的應用程序中有一個包含ListView的視圖
然后,我有一個自定義適配器,它繼承自ArrayAdapter
在getView方法的視圖中,我返回一行,其中包含一些文本和一個復選框
到目前為止,這一切都很好,我的列表已填充,我可以檢查我的項目,所有事件似乎都按預期觸發。
我遇到的問題是我檢查了前3個項目,然后注意到檢查了第11、12和13個項目,並且在我滾動時,我看到以固定的間隔似乎也以相同的方式檢查了其他復選框。
如果我選中約10個復選框,則最終將檢查約80個列表中的所有項目。
誰能解釋我做錯了什么?
我不認為任何代碼都可以幫助解釋這一點,因為我沒有在任何地方設置復選框的checkstate,這些都可以自行處理,因此正在檢查的事實使我感到困惑。
提前致謝
發生這種情況是因為Android出於性能目的回收列表項,在這里您可以解決此問題: ListView在...時重用視圖...我不希望這樣做
希望對您有所幫助:)
這是預期的行為。 ListView重用適配器中的視圖。 因此,您想要保留一Set
“選定的項目”並添加一個項目或在單擊CheckBox
時將其刪除,然后在getView中添加以下代碼:
if(mSelected.contains(getItem(position)) {
checkBox.setChecked(true);
} else {
checkBox.setChecked(false);
}
這樣,當重復使用該行時, CheckBox
將處於正確的狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.