Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the previous or next view

how can I get the previous view(TextView) of the SlideButton view, and the next view of the SlideButton view.

The SlideButton view with the id "remotelight". I can get the SlideButton view with the method "findViewById". so after I get the SlideButton View, how can I get the previous view and the next view ,without the help of "findViewById" method.

thanks so much.

below is a part of layout xml:

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

    <com.ivn.SlideButton
        android:id="@+id/remotelight"
        android:layout_width="100dp"
        android:layout_height="50dp" />


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" />

</TableRow>
like image 498
explorer Avatar asked Nov 02 '12 11:11

explorer


1 Answers

You can use the ViewGroup instance that's acting as a container for your widgets to do this.

See getChildAt(int) and indexOfChild(View)

So getChildAt(indexOfChild(v)+1) will get you the next view.

So something like

 ViewGroup container = (ViewGroup) findViewbyID(R.tableRow1);
 View slideBtn = findViewbyID(R.remoteLight);
 View nextView = container.getChildAt(container.indexOfChild(slideBtn)+1);

You should add checks for overflow and that the next view is of the type that you do in fact want.

like image 156
CjS Avatar answered Sep 21 '22 02:09

CjS