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