Obtener elementos seleccionados de listview en android
Tengo un listview dinámico con un texto y una casilla de verificación por line.when haga clic en un botón., Tengo que obtener todos los nombres de elementos marcados y nombres de artículo no seleccionados por separado como arraylilst.How ¿podría hacer that.Examples son mucho mejores ..
Solía..
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(); } }
Pruebe esto e implemente esta lógica de acuerdo a sus requerimientos.
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"; } }
Utilice CHOICE_MODE_MULTIPLE en su ListView
y use getCheckedItemPositions()
para obtener los comprobados.
Así que el botón de Onclick u puede hacer esto, de esto obtendrá los elementos que se comprueban: –
@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()); } }