设置内容视图的问题

时间:2011-07-22 09:35:08

标签: android

我有两个xml文件。我想在同一个活动中使用这两个xml文件,但是当我尝试使用它时,我收到错误。

1.xml的代码

<LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:orientation="vertical"
       android:layout_gravity="center_vertical|center_horizontal"
       android:background="@drawable/back_image">
      <ImageView android:src="@drawable/loading_logo"
         android:id="@+id/ImageView01"
         android:layout_gravity="center_vertical|center_horizontal"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="120dip">
      </ImageView>
      <TextView 
        android:id="@+id/textView1" 
        android:text="www.seecycle.com"
        android:layout_marginTop="100dip"
        android:gravity="center_horizontal|center_vertical"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@+id/ImageView01"
        android:textColor="#FFFFFF"
        android:textSize="20dip">
      </TextView>

</LinearLayout>

2.xml的代码

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"    
            android:layout_width="fill_parent"    
            android:layout_height="fill_parent"
            android:id="@+id/layout_root">
              <TextView android:id="@+id/text"
              android:gravity="center_vertical|center_horizontal"
              android:layout_marginTop="10dip"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:textColor="#FFFFFF"
              />
              <TextView android:id="@+id/text1"
              android:layout_marginTop="10dip"
              android:gravity="center_vertical|center_horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_below="@+id/text"
              android:textColor="#FFFFFF"
              />
              <TextView android:id="@+id/text2"
              android:layout_marginTop="10dip"
              android:gravity="center_vertical|center_horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_below="@+id/text1"
              android:textColor="#FFFFFF"
              />
              <EditText android:id="@+id/text3"
              android:layout_width="fill_parent"
              android:layout_marginTop="20dip"
              android:layout_height="fill_parent"
              android:layout_below="@+id/text1"
              android:textColor="#000000"


              />
</LinearLayout>
<。pv文件的代码

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
setContentView(R.layout.1);
setContentView(R.layout.2);//when i use this it generate an error
}

3 个答案:

答案 0 :(得分:0)

如果您需要两种布局但希望将它们分开,那么创建第三种布局文件并导入上述两种布局可能是您的最佳选择。

e.g。

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

    <include
        layout="@layout/layout1" />
    <include
        layout="@layout/layout2" />
</LinearLayout>

答案 1 :(得分:0)

setContentView并不打算多次调用。顾名思义,它“设置”视图,而不是将其添加到现有视图集。

您需要使用<include layout="@layout/name-of-layout">

在第一个xml中包含第二个布局xml

更新

将1.xml更改为

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center_vertical|center_horizontal"
    android:background="@drawable/back_image">
    <ImageView android:src="@drawable/loading_logo"
        android:id="@+id/ImageView01"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="120dip">
    </ImageView>
    <TextView 
        android:id="@+id/textView1" 
        android:text="www.seecycle.com"
        android:layout_marginTop="100dip"
        android:gravity="center_horizontal|center_vertical"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@+id/ImageView01"
        android:textColor="#FFFFFF"
        android:textSize="20dip">
    </TextView>
    <include layout="@layout/2" />
</LinearLayout>

在活动中,只做

setContentView(R.layout.1);

答案 2 :(得分:0)

你不能用不同的布局调用setContentView()两次。我认为你要找的是ViewFlipper。这可以用于在两个布局之间交替。

A tutorial I found on google for this