androidandroid-layoutxml-layout

How can i change included xml layout to another layout on java code?


I included second layout to first layout like this:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="clip_horizontal"
    android:layout_alignParentLeft="true" 
    android:id="@+id/rlMenu"
    >

    <Button
        android:id="@+id/bMusteriler"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Musteriler"
        android:textSize="45dp"
        android:layout_alignParentLeft="true"
         />

</RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_toRightOf="@id/rlEkranlar"
     >

    <include
        android:id="@+id/include1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/ikinci" />

</RelativeLayout>
</RelativeLayout>

Problem is how can I change included layout when clicked a button(on java code)?


Solution

  • I suggest ViewFlipper inside RelativeLayout of your include statements. Try like this:

    <ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/vf"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    
        <include android:id="@+id/include1" layout="@layout/ikinci" />
        <include android:id="@+id/map" layout="@layout/third_layout" />
    
    </ViewFlipper>
    

    Access ViewFlipper as below. Initially first layout is output:

    ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);
    

    For Button onClickListener:

    button.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    vf.setDisplayedChild(1);
                }
            });