2014-06-09 13 views
10

Ho una vista creata in modo dinamico e voglio trovarla per tag, è possibile? Conosco la funzione findViewById, c'è qualcosa di simile per i tag?Android. Trova visualizzazione per tag

+2

sì, c'è findViewWithTag –

+1

Ovviamente, è necessario impostare prima il tag per la visualizzazione: D – kidnan1991

risposta

13
LinearLayout linLayout = (LinearLayout)findViewWithTag("layout1"); 

ma non penso che sia necessario il tag per la visualizzazione dinamica. È possibile recuperare risorse dinamiche dal seguente codice

for (int i=0; i < total_resource; i++) { 
    //retrieve id dynamically 
    int id = getResources().getIdentifier("resource"+i, "id", getPackageName()); 
    TextView myText = (TextView) findViewById(id); // get the element 
} 
1

Crea ids.xml di memorizzare il vostro ID:

<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="component1" /> <item type="id" name="component2" /> <item type="id" name="component3" /> </resources> 

Set di componente creata dinamicamente come:

Button1.setId(R.id.layout1); buttom2.setId(R.id.layout2); button3.setId(R.id.layout3); 

Un altro modo è quello di impostare un tag per il tuo componente durante la creazione dinamicamente

button1.setTag(1); 

E utilizzare getTag() per ottenere quel componente