Prendere tutti gli elementi di una ListView in Android e Java
Nella nostra Activity Android riempiamo la nostra bella ListView con determinati dati (quali e come non importa in questo contesto).
Ad un certo punto, vogliamo prendere tutti gli item della ListView per farci qualcosa.
Questo è un esempio di codice Java per fare quello che ci serve da inserire nella Activity:
public void mostraCompletati() {
final ListView lv = findViewById(R.id.listaStanze);
for (int i = 0; i < lv.getCount(); i++) {
View v = getViewByPosition(i, lv);
TextView tv = v.findViewById(R.id.completato);
if (tv.getText().toString().equals("no")) {
v.setVisibility(View.GONE);
}
}
}
private View getViewByPosition(int position, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (position < firstListItemPosition || position > lastListItemPosition) {
return listView.getAdapter().getView(position, listView.getChildAt(position), listView);
} else {
final int childIndex = position - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
Nel mio caso vado a controllare il valore di una TextView, e in base a quello gli dico se nascondere l'intero layout.
Enjoy!
java android activity listview
Commentami!