如何在android中使用两个或多个xml文件

如何在android中使用两个或多个xml文件,android,xml,listview,Android,Xml,Listview,我正在开发egreeting卡应用程序。我在第一个xml文件中有两个xml文件,其中包含按钮和列表视图。当我单击按钮时,列表将显示此列表并占用活动空间。因此,我们无法在xml文件中放置任何小部件。当单击列表项时,我希望在列表的同一位置显示ImageView。为此,我创建了另一个现在,当我点击ListItem时,它会显示新的xml,但不在同一个Activity中。如何解决这个问题。我在这里附上了完整的源代码。这是我的xml文件 main.xml <LinearLayout xmlns:and

我正在开发egreeting卡应用程序。我在第一个xml文件中有两个xml文件,其中包含按钮和列表视图。当我单击按钮时,列表将显示此列表并占用活动空间。因此,我们无法在xml文件中放置任何小部件。当单击列表项时,我希望在列表的同一位置显示ImageView。为此,我创建了另一个现在,当我点击ListItem时,它会显示新的xml,但不在同一个Activity中。如何解决这个问题。我在这里附上了完整的源代码。这是我的xml文件 main.xml

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/linearback" >

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="40dp"
            android:layout_height="30dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/list_items" />

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="50dp"
            android:layout_height="40dp"
            android:layout_marginLeft="190dp"
            android:layout_marginTop="6dp"
            android:background="@drawable/search" />
    </LinearLayout>

    <!--
   <LinearLayout 
       android:id="@+id/mylayouttwo"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">

      <ImageView android:id="@+id/imgview1" 
           android:layout_width="match_parent"
           android:layout_height="300dp"></ImageView>

   </LinearLayout>
    -->

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

images.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
     android:background="@color/backcolor">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="234dp"
        android:layout_marginTop="60dp"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

package com.triumph.greetings;
import android.R.color;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewSwitcher;

public class Launch extends Activity implements OnClickListener {

    boolean isListVisible=true;
    ImageButton img1,img2;
    ListView lv;
    String[] festivales= new String[]{"Christmas","New year","BirthDay","Easter","Wedding","Valentine","Love","Nature"};
    ImageView img;

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        img1=(ImageButton)findViewById(R.id.imageButton1);
        img2=(ImageButton)findViewById(R.id.imageButton2);

        img1.setOnClickListener(this);
        img2.setOnClickListener(this);



        lv=(ListView)findViewById(R.id.listView1);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(Launch.this,android.R.layout.simple_list_item_1,festivales);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int postion,
                    long arg3) 
            {
                // TODO Auto-generated method stub
                lv.setVisibility(View.INVISIBLE);
                isListVisible=false;
                Toast.makeText( Launch.this, ((TextView) v).getText(),Toast.LENGTH_LONG).show();
                //state=true;
                displayimages();
            }

            private void displayimages()
            {
                // TODO Auto-generated method stub
                // fetch the images from server and shows in GridView 
                // call linear layout

                setContentView(R.layout.images);
                img=(ImageView)findViewById(R.id.imageView1);
                img.setBackgroundColor(color.background_light);


            }           
        });
    }
    @Override
    public void onClick(View v)
    {
        // TODO Auto-generated method stub
        switch(v.getId())
        {
            case R.id.imageButton1:
                if(isListVisible)
                {
                    lv.setVisibility(View.INVISIBLE);
                    isListVisible=false;
                }
                else
                {
                    lv.setVisibility(View.VISIBLE);
                    isListVisible=true;
                }

                break;
                //Toast.makeText(getBaseContext(), "Hi", Toast.LENGTH_LONG).show();break;
            case R.id.imageButton2:
                break;
        }

    }

}

images.xml
套餐com.triumph.hellies;
导入android.R.color;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.ImageButton;
导入android.widget.ImageView;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.ViewSwitcher;
公共类启动扩展了活动实现OnClickListener{
布尔值isListVisible=true;
图像按钮img1、img2;
ListView lv;
字符串[]节日=新字符串[]{“圣诞节”、“新年”、“生日”、“复活节”、“婚礼”、“情人节”、“爱情”、“自然”};
图像视图img;
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
img1=(ImageButton)findViewById(R.id.imageButton1);
img2=(ImageButton)findViewById(R.id.imageButton2);
img1.setOnClickListener(这个);
img2.setOnClickListener(这个);
lv=(ListView)findViewById(R.id.listView1);
ArrayAdapter=新的ArrayAdapter(Launch.this,android.R.layout.simple\u list\u item\u 1,festivales);
低压设置适配器(适配器);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0,视图v,内部位置,
长arg3)
{
//TODO自动生成的方法存根
lv.setVisibility(视图不可见);
isListVisible=false;
Toast.makeText(Launch.this,((TextView)v.getText(),Toast.LENGTH_LONG.show();
//状态=真;
显示图像();
}
私有void displayimages()
{
//TODO自动生成的方法存根
//从服务器获取图像并在GridView中显示
//调用线性布局
setContentView(R.layout.images);
img=(ImageView)findViewById(R.id.imageView1);
背景颜色(颜色、背景光);
}           
});
}
@凌驾
公共void onClick(视图v)
{
//TODO自动生成的方法存根
开关(v.getId())
{
案例R.id.imageButton1:
如果(isListVisible)
{
lv.setVisibility(视图不可见);
isListVisible=false;
}
其他的
{
lv.setVisibility(视图可见);
isListVisible=true;
}
打破
//Toast.makeText(getBaseContext(),“Hi”,Toast.LENGTH_LONG).show();break;
案例R.id.imageButton2:
打破
}
}
}

您应该为列表和图像使用单一xml,并使用setVisibility()将它们设置为可见/不可见/消失(根据您的要求)。我想为孔活动显示listview。因此,我创建了另一个xml文件。在显示listview和viceversa时,只需将其设置为不可见的imageview即可