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!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2741 articoli
310 commenti
21 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy