2010-07-26 10 views
28

¿Cómo obtener el índice de especial ver o ViewGroup que se añade a la ViewGroup (layout)

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_margin="24dip" 
    android:text="Add Notes" /> 
<TableLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:layout_marginLeft="24dip" 
    android:layout_marginRight="24dip" android:id="@+id/tlNotes" 
    android:stretchColumns="0"> 
</TableLayout> 

<Button android:id="@+id/bAddNoteLine" 
    android:layout_marginLeft="24dip" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:text="ADD"> 
</Button> 

<LinearLayout android:id="@+id/llIndex" 
    android:orientation="horizontal" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:layout_margin="21dip" 
    android:gravity="center"> 
    <Button android:id="@+id/bSaveSubjectiveNote" 
     android:layout_width="192dip" android:layout_height="wrap_content" 
     android:text="Save" /> 
    <Button android:id="@+id/bDiscardSubjectiveNote" 
     android:layout_width="192dip" android:layout_height="wrap_content" 
     android:layout_marginLeft="48dip" android:background="@drawable/button" 
     android:text="Discard" /> 
</LinearLayout> 

cómo recuperar el índice de LinearLayout que tiene "llIndex" como ID. Gracias

Respuesta

0

Cuando crea el XML, hay un archivo yourpackage.generated.R.java que se crea con todos los ids/drawables/etc en él. Así que para hacer referencia a ella, importe el R.java generado en su clase, a continuación, hacer esto (suponiendo que estás en una actividad):

setContentView(R.layout.my_content); 
LinearLayout addNoteLayout = (LinearLayout) findViewById(R.id.llAddNote); 
+0

Gracias por su respuesta ... Pero en realidad quiero indexar, Ahora, en este ejemplo, el índice de linearLayout que tiene "llIndex" como id es 3. Quiero leerlo a través de la API. – user373885

+0

Bueno, supongo que estoy confundido, porque, ¿de qué quieres exactamente el índice? ¿Está llAddNote contenido en otra vista, y necesita saber qué niño es? –

99

Muy simple - llamar a la función indexOfChild en el elemento principal de la vista:

LinearLayout addNoteLayout = (LinearLayout) findViewById(R.id.llAddNote); 
int index = ((ViewGroup) addNoteLayout.getParent()).indexOfChild(addNoteLayout); 
Cuestiones relacionadas