我使用 listview 中的 checkboxes,然后设置成 multi_choice。
如果我执行一次 getCheckeItemPositions 来获的选中的 listview 选项,程序可以很好的运行。
但是如果我再执行一次,取消其中的一些选项,系统依然认为还是选择了的。我只能添加更多的 items 来"checked",如何解决这个问题?
sp = new SparseBooleanArray();
lTransfer = new ArrayList<String>();
ListView info = (ListView)findViewById(R.id.info);
sp = info.getCheckedItemPositions();
Log.d("Watcher","Arraysize:" + sp.size());
for(int i = 0; i< sp.size();i++){
Log.d("Watcher","Arrayfound:" + info.getAdapter().getItem(sp.keyAt(i)).toString().split(":")[0]);
lTransfer.add(info.getAdapter().getItem(sp.keyAt(i)).toString().split(":")[0]);
}
public void updateInfo(){
ListView info = (ListView)findViewById(R.id.info);
info.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
info.setItemsCanFocus(false);
info.setOnItemClickListener(new InfoListener());
lSpin = new ArrayAdapter<String>(this, R.layout.list_item, lToAdd);
info.setAdapter(lSpin);
}