0

我想动态生成相对布局,这样我就可以多次重复数据,我从服务器获取数据。我想动态创建的布局ID是depart_flight_details_duration, 。如何passenger_details_layout在循环中创建它们以便它将重复不止一个。请帮助我,我是 android 新手。

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="5dip"
        android:padding="3dip"
        android:src="@drawable/logo_demo" />

    <ScrollView
        android:id="@+id/main_scroll_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/imgLogo" >

        <RelativeLayout
            android:id="@+id/main_ScrollView_Container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <RelativeLayout
                android:id="@+id/trip_details_main"
                android:layout_width="fill_parent"
                android:layout_height="70dp"
                android:background="@drawable/flight_detail"
                android:gravity="center_vertical" >

                <TextView
                    android:id="@+id/trip_locations"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="5dp"
                    android:text="Delhi to Hydrabad"
                    android:textColor="#FFFFFF"
                    android:textSize="20sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/depart_date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/trip_locations"
                    android:layout_marginLeft="5dp"
                    android:text="18 Sep 2013"
                    android:textColor="#FFFFFF"
                    android:textSize="15sp" />

                <ImageView
                    android:id="@+id/imgRight"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_marginTop="12dp"
                    android:src="@drawable/cal" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/travel_itin_header"
                android:layout_width="fill_parent"
                android:layout_height="40dp"
                android:layout_below="@+id/trip_details_main"
                android:layout_marginTop="2dp"
                android:background="@drawable/gray"
                android:gravity="center_vertical" >

                <TextView
                    android:id="@+id/itinerary_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="90dp"
                    android:layout_marginTop="5dp"
                    android:text="Itinerary Details"
                    android:textColor="#FFFFFF"
                    android:textSize="15sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/passenger_details_layout"
                android:layout_width="fill_parent"
                android:layout_height="40dp"
                android:layout_below="@+id/travel_itin_header"
                android:layout_marginTop="2dp"
                android:background="@drawable/gray"
                android:gravity="center_vertical" >

                <ImageView
                    android:id="@+id/pax_image"
                    android:layout_width="wrap_content"
                    android:layout_height="50dip"
                    android:layout_alignParentLeft="true"
                    android:padding="3dip"
                    android:src="@drawable/black_man" />

                <TextView
                    android:id="@+id/first_pax_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/pax_image"
                    android:layout_marginLeft="12dp"
                    android:layout_marginTop="10dp"
                    android:layout_toRightOf="@+id/pax_image"
                    android:text=" XXX XXX XXX"
                    android:textColor="#FFFFFF"
                    android:textSize="15sp"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/imgRight"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/first_pax_name"
                    android:layout_alignParentRight="true"
                    android:src="@drawable/arrow2" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/depart_flight_details_duration"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/passenger_details_layout"
                android:layout_marginTop="2dp"
                android:background="@drawable/small_search" >

                <ImageView
                    android:id="@+id/flight_depart_image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:padding="3dip"
                    android:src="@drawable/dep" />

                <TextView
                    android:id="@+id/depart_return_location"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/flight_depart_image"
                    android:layout_marginLeft="12dp"
                    android:layout_marginTop="10dp"
                    android:layout_toLeftOf="@+id/arrow_image"
                    android:layout_toRightOf="@+id/flight_depart_image"
                    android:text="Delhi to Hydrabad"
                    android:textColor="#FFFFFF"
                    android:textSize="15sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/one_way_date_and_duration_details"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/depart_return_location"
                    android:layout_marginLeft="12dp"
                    android:layout_toRightOf="@+id/flight_depart_image"
                    android:text="18 Sep 2013 09:45 | Duration 2:45"
                    android:textColor="#FFFFFF"
                    android:textSize="12sp" />

                <ImageView
                    android:id="@+id/arrow_image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/depart_return_location"
                    android:layout_alignParentRight="true"
                    android:layout_marginTop="10dp"
                    android:src="@drawable/arrow2" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/travel_agency_header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/depart_flight_details_duration"
                android:layout_marginTop="2dp"
                android:background="@drawable/travelagency_bg" >

                <TextView
                    android:id="@+id/travel_agency_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="5dp"
                    android:text="Travel Agency"
                    android:textColor="#676767"
                    android:textSize="15sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/tarvel_agency_details"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/travel_agency_header"
                android:layout_marginTop="2dp" >

                <ImageView
                    android:id="@+id/agent_logo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:src="@drawable/logo" />

                <ImageView
                    android:id="@+id/mobile_logo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="8dp"
                    android:layout_marginTop="10dp"
                    android:layout_toRightOf="@+id/agent_logo"
                    android:src="@drawable/mobile" />

                <ImageView
                    android:id="@+id/at_logo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="10dp"
                    android:layout_toRightOf="@+id/mobile_logo"
                    android:src="@drawable/at" />

                <ImageView
                    android:id="@+id/email_logo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="10dp"
                    android:layout_toRightOf="@+id/at_logo"
                    android:src="@drawable/at" />

                <TextView
                    android:id="@+id/travel_agency_address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/agent_logo"
                    android:layout_marginLeft="5dp"
                    android:text="Address : XXXXXXXX"
                    android:textColor="#676767" />

                <TextView
                    android:id="@+id/travel_agency_fax"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/travel_agency_address"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="2dp"
                    android:text="Fax : XXXXXXXX"
                    android:textColor="#676767" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/genral_remarks_header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tarvel_agency_details"
                android:layout_marginTop="2dp"
                android:background="@drawable/general_remar" >

                <TextView
                    android:id="@+id/genral_remark_header_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="5dp"
                    android:text="Genral Remarks"
                    android:textColor="#676767"
                    android:textSize="15sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/genral_remark_text_layout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/genral_remarks_header"
                android:layout_marginTop="2dp" >

                <TextView
                    android:id="@+id/genral_remark_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:gravity="center_vertical"
                    android:text="HAVE A NICE TRIP"
                    android:textColor="#676767" />
            </RelativeLayout>
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>
4

3 回答 3

0

一个简单的 LayoutInflater 程序从这里

a-将此布局设置为您的 activity_main.xml-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 </LinearLayout>

b-这是我们将动态添加的隐藏布局,将其保存为 hidden_​​layout.xml

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/hidden_layout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical">

<TextView  
     android:id="@+id/text_view"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Hello, this is the inflated text of hidden layout"/>

<EditText  
     android:id="@+id/edit_text"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Hello, this is your name"/>
</LineraLayout>

c-现在这是主要活动的代码-

public class MainActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

for(int i=0;i<numberOfRows;i++){
LinearLayout main = (LinearLayout)findViewById(R.id.main_layout);
        View view = getLayoutInflater().inflate(R.layout.hidden_layout, main,false);
        main.addView(view);
}
}

 }
于 2013-09-19T10:35:16.350 回答
0

您必须使用自定义列表视图。

对于一个布局中的两个列表视图,请参阅此链接Link

于 2013-09-19T10:21:45.230 回答
0
RelativeLayout mDisplayBlock = (RelativeLayout)
     LayoutInflater.from(getActivity()).inflate(
     depart_flight_details_duration, null);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    mDisplayBlock.setLayoutParams(params);

您可以将此布局添加到主滚动视图

main_scroll_view_layout.addView(mDisplayBlock); 

只需将此代码放在代码中的适当位置即可。

于 2013-10-19T06:58:12.803 回答