Domanda

Ho un ListView che viene popolato utilizzando un file XML. Tuttavia, voglio ogni voce, se cliccato, per intraprendere una nuova attività relative a tale elemento.

ho capito come utilizzare OnItemClick di avviare un toast che mostra il testo della voce selezionata. Tuttavia, dal momento che il controllo ListView è popolato da un XML non v'è un ID specifico per ogni elemento della lista.

Quindi, come potrei associare un'attività con ciascun elemento della ListView quando gli elementi non hanno Ids?

È stato utile?

Soluzione

Mantenere nel vostro file XML un nodo per l'attività che deve essere chiamato, in un formato numerico o una stringa. Poi hanno un elenco di attività in una collezione, che stanno implementando una certa classe di interfaccia / astratta, in modo da poter ciclo su di esso. Anche le attività hanno un campo / metodo statico che restituiscono il loro numero di riferimento o di una stringa in modo da poter confrontare troppo.

Qualche schizzo:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <category
        name="Item One"
        id="grp1" />
    <category
        name="Item Two"
        id="grp2" />
</resources>

In Java:

    List<AbstractTable> col = new ArrayList<AbstractTable>();
    col.add(new clsGroup1(this.ctx));
    col.add(new clsGroup2(this.ctx));

    for (AbstractTablecls : col) {
                if (cls.getTag().equals(varFromListSelection)) {
                         //launch intent of this class
                }
            }

dove getTag() restituisce l'identificatore per la classe ad esempio: grp1 o grp2

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top