1

I have a fragment which has a button which when clicked must add a relative layout below other. As many times the button is clicked the same layout must added below the previous one.

In hotel_search.xml when the button with id(@+id/addroom) is clicked the layout in the hotel_room_fragment must be added below the RelativeLayout with id @+id/roomlayout and again if it is clicked the same layout in the hotel_room_fragment must be included below the previously added one.

Also please show me how to remove the layout when a close button is clicked.

hotel_search.xml:

    <RelativeLayout
                    android:id="@+id/roomlayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent">


                    <TextView
                        android:id="@+id/rooms"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />

                    <TextView
                        android:id="@+id/adults"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/rooms"

                        android:layout_toEndOf="@+id/button3"
                        android:layout_toRightOf="@+id/button3"
                        android:text="Adults"
                        android:textColor="#BDBDBD" />

                    <Button
                        android:id="@+id/button3"
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:layout_below="@+id/adults"
                        android:layout_marginLeft="18dp"
                        android:layout_marginStart="18dp"
                        android:layout_marginTop="10dp"
                        android:layout_toEndOf="@+id/rooms"
                        android:layout_toRightOf="@+id/rooms"
                        android:background="#90006064"
                        android:text="-"
                        android:textColor="#fff"
                        android:textSize="22sp" />

                    <Button
                        android:id="@+id/button4"
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:layout_alignLeft="@+id/adults"
                        android:layout_alignStart="@+id/adults"
                        android:layout_alignTop="@+id/button3"
                        android:layout_marginLeft="37dp"

                        android:layout_marginStart="37dp"
                        android:background="#90006064"
                        android:text="+"
                        android:textColor="#fff"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/children"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_above="@+id/button3"
                        android:layout_alignParentEnd="true"
                        android:layout_alignParentRight="true"
                        android:layout_marginEnd="38dp"
                        android:layout_marginRight="38dp"
                        android:text="Children"
                        android:textColor="#BDBDBD" />

                    <Button
                        android:id="@+id/button6"
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:layout_marginEnd="13dp"

                        android:layout_marginRight="13dp"
                        android:background="#90006064"
                        android:text="+"
                        android:textColor="#fff"
                        android:textSize="18sp"
                        android:layout_alignParentBottom="true"
                        android:layout_alignParentRight="true"
                        android:layout_alignParentEnd="true" />

                    <Button
                        android:id="@+id/button5"
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:background="#90006064"
                        android:text="-"
                        android:textColor="#fff"
                        android:textSize="22sp"
                        android:layout_alignParentBottom="true"
                        android:layout_toLeftOf="@+id/button6"
                        android:layout_toStartOf="@+id/button6"
                        android:layout_marginRight="41dp"
                        android:layout_marginEnd="41dp" />
                </RelativeLayout>
<View
            android:id="@+id/view3"
            android:layout_width="100dp"
            android:layout_height="0.5dp"
            android:layout_marginTop="20dp"
            android:background="#00838F"
            android:foregroundGravity="center"
            android:layout_below="@+id/scrollView"
            android:layout_toRightOf="@+id/checkin"
            android:layout_toEndOf="@+id/checkin"></View>
<Button
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:text="Add Room"
    android:id="@+id/addroom"
    android:textColor="#fff"
    android:layout_marginLeft="20dp"
    android:background="#50000000"
    android:layout_marginTop="20dp"
    android:layout_below="@+id/view3"/>

hotel_room_fragment.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/roomlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent">


    <TextView
        android:id="@+id/rooms"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/adults"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rooms"

        android:layout_toEndOf="@+id/button3"
        android:layout_toRightOf="@+id/button3"
        android:text="Adults"
        android:textColor="#BDBDBD" />

    <Button
        android:id="@+id/button3"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_below="@+id/adults"
        android:layout_marginLeft="18dp"
        android:layout_marginStart="18dp"
        android:layout_marginTop="10dp"
        android:layout_toEndOf="@+id/rooms"
        android:layout_toRightOf="@+id/rooms"
        android:background="#90006064"
        android:text="-"
        android:textColor="#fff"
        android:textSize="22sp" />

    <Button
        android:id="@+id/button4"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignLeft="@+id/adults"
        android:layout_alignStart="@+id/adults"
        android:layout_alignTop="@+id/button3"
        android:layout_marginLeft="37dp"

        android:layout_marginStart="37dp"
        android:background="#90006064"
        android:text="+"
        android:textColor="#fff"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/children"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button3"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginEnd="38dp"
        android:layout_marginRight="38dp"
        android:text="Children"
        android:textColor="#BDBDBD" />

    <Button
        android:id="@+id/button6"
        android:layout_width="30dp"
        android:layout_height="30dp"

        android:background="#90006064"
        android:text="+"
        android:textColor="#fff"
        android:textSize="18sp"

        android:layout_marginRight="13dp"
        android:layout_marginEnd="13dp"
        android:layout_alignTop="@+id/button5"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:id="@+id/button5"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="#90006064"
        android:text="-"
        android:textColor="#fff"
        android:textSize="22sp"
        android:layout_alignTop="@+id/button4"
        android:layout_toLeftOf="@+id/children"
        android:layout_toStartOf="@+id/children" />
</RelativeLayout>
Jiri Tousek
  • 12,211
  • 5
  • 29
  • 43
jobin
  • 1,489
  • 5
  • 27
  • 52

1 Answers1

0

I agree with Bona Fide that you should use a listView/RecyclerView for this, just to point out.

Anyway, on your onClick method, where you create a new RelativeLayout() call setID() with some random int (You cant use a hardcoded one), then store it in a class field like private int lastId;

Once that is done, in the LayoutParams.addRule() call replace your R.id.roomlayout with your lastId field.

Hope you got it.

Nanoc
  • 2,381
  • 1
  • 20
  • 35