Home » Android » android – How to get the index of particular view OR ViewGroup which is added to the ViewGroup(layout)

android – How to get the index of particular view OR ViewGroup which is added to the ViewGroup(layout)

Posted by: admin April 23, 2020 Leave a comment

Questions:

<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>

how to retrieve the index of linearLayout which has “llIndex” as id.
Thanks

How to&Answers:

Very simple – call the indexOfChild function on the view’s parent:

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

Answer:

When you create the XML, there is a file yourpackage.generated.R.java that is created with all the ids/drawables/etc in it. So to reference it, import the generated R.java into your class, then do this (assuming you’re in an Activity):

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