在android中从listview中检查项目

我有一个dynamic的列表视图,每行有一个文本和一个checkbox。当我点击一个button时,我需要将所有选中的项目名称和未选中的项目名称分开为arraylilst.How我可以做到这一点。例子是更好..

我用了..

SparseBooleanArray checked = mainlw.getCheckedItemPositions(); for (int i = 0; i < checked.size(); i++) { if(checked.valueAt(i) == true) { Planet tag = (Planet) mainlw.getItemAtPosition(checked.keyAt(i)); String selectedName=tag.getName(); Toast.makeText(getApplicationContext(), selectedName, Toast.LENGTH_SHORT).show(); } } 

Solutions Collecting From Web of "在android中从listview中检查项目"

试试这个并根据你的要求实现这个逻辑。

 int cntChoice = myList.getCount(); String checked = ""; String unchecked = ""; SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions(); for(int i = 0; i < cntChoice; i++) { if(sparseBooleanArray.get(i) == true) { checked += myList.getItemAtPosition(i).toString() + "\n"; } else if(sparseBooleanArray.get(i) == false) { unchecked+= myList.getItemAtPosition(i).toString() + "\n"; } } 

在你的ListView使用CHOICE_MODE_MULTIPLE ,并使用getCheckedItemPositions getCheckedItemPositions()来获取选中的。

所以点击button你可以做到这一点,从这里你会得到被检查的项目: –

 @Override public void onClick(View v) { System.out.println("check"+getListView().getCheckItemIds().length); for (int i = 0; i < getListView().getCheckItemIds().length; i++) { System.out.println(getListView().getAdapter().getItem((int)getListView().getCheckItemIds()[i]).toString()); } }