Prendere tutti gli elementi di una ListView in Android e Java

Mattepuffo's logo
Prendere tutti gli elementi di una ListView in Android e Java

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!


Condividi

Commentami!