`
yutinglong
  • 浏览: 64180 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态添加删除ExpandableListView的item的例子

阅读更多

这个例子可以学习到如下几点:
1.通过自定义Dialog(单独布局的xml文件进行弹出显示)
2.通过menu点击监听添加,删除view中的items
3.点击ExpandableListView中group和child的事件监听

下面是代码:
1.ExpandableListViewStudy.java

Java代码 复制代码
  1. package cn.com.example;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.List;   
  5. import android.app.Activity;   
  6. import android.app.Dialog;   
  7. import android.os.Bundle;   
  8. import android.util.Log;   
  9. import android.view.Menu;   
  10. import android.view.MenuItem;   
  11. import android.view.View;   
  12. import android.view.View.OnClickListener;   
  13. import android.widget.Button;   
  14. import android.widget.EditText;   
  15. import android.widget.ExpandableListView;   
  16. import android.widget.Toast;   
  17. import android.widget.ExpandableListView.OnChildClickListener;   
  18. import android.widget.ExpandableListView.OnGroupClickListener;   
  19.   
  20. public class ExpandableListViewStudy extends Activity {   
  21.   
  22.     public final static int MENU_ADD = Menu.FIRST;   
  23.     public final static int MENU_DELETE = Menu.FIRST + 1;   
  24.   
  25.     ExpandableListView expandList;   
  26.     InfoDetailsAdapter adapter;   
  27.   
  28.     Activity activity;   
  29.   
  30.     List<String> group;   
  31.     List<List<String>> child;   
  32.   
  33.     // 初始化group child内容   
  34.     public void initialData() {   
  35.         group = new ArrayList<String>();   
  36.         child = new ArrayList<List<String>>();   
  37.   
  38.         addInfo("group 1"new String[] { "one 1""two 1""three 1" });   
  39.         addInfo("group 2"new String[] { "one 2""two 2""three 2" });   
  40.         addInfo("group 3"new String[] { "one 3""two 3""three 3" });   
  41.     }   
  42.   
  43.     public void addInfo(String p, String[] c) {   
  44.         group.add(p);   
  45.         List<String> item = new ArrayList<String>();   
  46.         for (int i = 0; i < c.length; i++) {   
  47.             item.add(c[i]);   
  48.         }   
  49.         child.add(item);   
  50.     }   
  51.   
  52.     /** Called when the activity is first created. */  
  53.     @Override  
  54.     public void onCreate(Bundle savedInstanceState) {   
  55.         super.onCreate(savedInstanceState);   
  56.         setContentView(R.layout.main);   
  57.   
  58.         activity = this;   
  59.   
  60.         expandList = (ExpandableListView) findViewById(R.id.expandList);   
  61.   
  62.         // 初始化各级元素   
  63.         initialData();   
  64.   
  65.         // 适配器内容   
  66.         adapter = new InfoDetailsAdapter(this, group, child);   
  67.   
  68.         expandList.setAdapter(adapter);   
  69.   
  70.         expandList.setOnGroupClickListener(new OnGroupClickListener() {   
  71.             @Override  
  72.             public boolean onGroupClick(ExpandableListView arg0, View arg1,   
  73.                     int arg2, long arg3) {   
  74.                 // TODO Auto-generated method stub   
  75.                 System.out.println("The row id of the group clicked" + arg3);   
  76.                 Toast.makeText(activity, "[Group Click]:" + arg2,   
  77.                         Toast.LENGTH_SHORT).show();   
  78.                 return false;   
  79.             }   
  80.   
  81.         });   
  82.         expandList.setOnChildClickListener(new OnChildClickListener() {   
  83.             @Override  
  84.             public boolean onChildClick(ExpandableListView arg0, View arg1,   
  85.                     int arg2, int arg3, long arg4) {   
  86.                 // TODO Auto-generated method stub   
  87.                 Toast.makeText(activity, "[Child Click]:" + arg2 + ":" + arg3,   
  88.                         Toast.LENGTH_SHORT).show();   
  89.                 return false;   
  90.             }   
  91.         });   
  92.     }   
  93.   
  94.     // 下述2个函数处理Menu按钮的事件   
  95.     public boolean onCreateOptionsMenu(Menu menu) {   
  96.         // TODO Auto-generated method stub   
  97.         menu.add(0, MENU_ADD, 0"     添加        ");   
  98.         menu.add(0, MENU_DELETE, 0"     删除        ");   
  99.   
  100.         return super.onCreateOptionsMenu(menu);   
  101.     }   
  102.   
  103.     public boolean onOptionsItemSelected(MenuItem item) {   
  104.         switch (item.getItemId()) {   
  105.         case MENU_ADD:   
  106.             Log.i("""FRIEND_ID");   
  107.             createDialogAdd();   
  108.             dialogAdd.show();   
  109.             break;   
  110.         case MENU_DELETE:   
  111.             Log.i("""FRIEND_ID");   
  112.             createDialogDelete();   
  113.             dialogDelete.show();   
  114.             break;   
  115.         }   
  116.         return super.onOptionsItemSelected(item);   
  117.     }   
  118.   
  119.     EditText add_name, add_phone, add_sex, add_home;   
  120.     EditText delete_id;   
  121.   
  122.     Button add_ok, add_no;   
  123.     Button delete_ok, delete_no;   
  124.   
  125.     Dialog dialogAdd, dialogDelete;   
  126.   
  127.     public void createDialogAdd() {   
  128.         Log.i("""createDialogAdd");   
  129.         View viewAdd = this.getLayoutInflater().inflate(R.layout.add, null);   
  130.   
  131.         dialogAdd = new Dialog(this);   
  132.         dialogAdd.setContentView(viewAdd);   
  133.         dialogAdd.setTitle("输入新成员信息");   
  134.   
  135.         add_name = (EditText) viewAdd.findViewById(R.id.add_name);   
  136.         add_phone = (EditText) viewAdd.findViewById(R.id.add_phone);   
  137.         add_sex = (EditText) viewAdd.findViewById(R.id.add_sex);   
  138.         add_home = (EditText) viewAdd.findViewById(R.id.add_home);   
  139.   
  140.         add_ok = (Button) viewAdd.findViewById(R.id.add_ok);   
  141.         add_no = (Button) viewAdd.findViewById(R.id.add_no);   
  142.   
  143.         add_ok.setOnClickListener(new OnClickListener() {   
  144.             public void onClick(View v) {   
  145.                 // TODO Auto-generated method stub   
  146.                 String[] data = { add_phone.getText().toString(),   
  147.                         add_sex.getText().toString(),   
  148.                         add_home.getText().toString() };   
  149.   
  150.                 addInfo(add_name.getText().toString(), data);   
  151.   
  152.                 dialogAdd.dismiss();   
  153.   
  154.                 adapter.notifyDataSetChanged();   
  155.             }   
  156.         });   
  157.   
  158.         add_no.setOnClickListener(new OnClickListener() {   
  159.             public void onClick(View v) {   
  160.                 // TODO Auto-generated method stub   
  161.                 dialogAdd.dismiss();   
  162.             }   
  163.         });   
  164.     }   
  165.   
  166.     public void createDialogDelete() {   
  167.         View viewDelete = this.getLayoutInflater().inflate(R.layout.delete,   
  168.                 null);   
  169.   
  170.         dialogDelete = new Dialog(this);   
  171.         dialogDelete.setContentView(viewDelete);   
  172.         dialogDelete.setTitle("删除指定成员");   
  173.   
  174.         delete_id = (EditText) viewDelete.findViewById(R.id.delete_id);   
  175.         delete_ok = (Button) viewDelete.findViewById(R.id.delete_ok);   
  176.         delete_no = (Button) viewDelete.findViewById(R.id.delete_no);   
  177.   
  178.         delete_ok.setOnClickListener(new OnClickListener() {   
  179.             public void onClick(View v) {   
  180.                 // TODO Auto-generated method stub   
  181.   
  182.                 String id = delete_id.getText().toString();   
  183.   
  184.                 if (!id.equals("")) {   
  185.                     int i = Integer.parseInt(id);   
  186.                     group.remove(i);   
  187.                     child.remove(i);   
  188.   
  189.                     dialogDelete.dismiss();   
  190.   
  191.                     adapter.notifyDataSetChanged();   
  192.                 }   
  193.   
  194.             }   
  195.         });   
  196.   
  197.         delete_no.setOnClickListener(new OnClickListener() {   
  198.             public void onClick(View v) {   
  199.                 // TODO Auto-generated method stub   
  200.                 dialogDelete.dismiss();   
  201.             }   
  202.         });   
  203.     }   
  204.   
  205. }  
package cn.com.example;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.Toast;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;

public class ExpandableListViewStudy extends Activity {

	public final static int MENU_ADD = Menu.FIRST;
	public final static int MENU_DELETE = Menu.FIRST + 1;

	ExpandableListView expandList;
	InfoDetailsAdapter adapter;

	Activity activity;

	List<String> group;
	List<List<String>> child;

	// 初始化group child内容
	public void initialData() {
		group = new ArrayList<String>();
		child = new ArrayList<List<String>>();

		addInfo("group 1", new String[] { "one 1", "two 1", "three 1" });
		addInfo("group 2", new String[] { "one 2", "two 2", "three 2" });
		addInfo("group 3", new String[] { "one 3", "two 3", "three 3" });
	}

	public void addInfo(String p, String[] c) {
		group.add(p);
		List<String> item = new ArrayList<String>();
		for (int i = 0; i < c.length; i++) {
			item.add(c[i]);
		}
		child.add(item);
	}

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		activity = this;

		expandList = (ExpandableListView) findViewById(R.id.expandList);

		// 初始化各级元素
		initialData();

		// 适配器内容
		adapter = new InfoDetailsAdapter(this, group, child);

		expandList.setAdapter(adapter);

		expandList.setOnGroupClickListener(new OnGroupClickListener() {
			@Override
			public boolean onGroupClick(ExpandableListView arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				System.out.println("The row id of the group clicked" + arg3);
				Toast.makeText(activity, "[Group Click]:" + arg2,
						Toast.LENGTH_SHORT).show();
				return false;
			}

		});
		expandList.setOnChildClickListener(new OnChildClickListener() {
			@Override
			public boolean onChildClick(ExpandableListView arg0, View arg1,
					int arg2, int arg3, long arg4) {
				// TODO Auto-generated method stub
				Toast.makeText(activity, "[Child Click]:" + arg2 + ":" + arg3,
						Toast.LENGTH_SHORT).show();
				return false;
			}
		});
	}

	// 下述2个函数处理Menu按钮的事件
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		menu.add(0, MENU_ADD, 0, "     添加        ");
		menu.add(0, MENU_DELETE, 0, "     删除        ");

		return super.onCreateOptionsMenu(menu);
	}

	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case MENU_ADD:
			Log.i("", "FRIEND_ID");
			createDialogAdd();
			dialogAdd.show();
			break;
		case MENU_DELETE:
			Log.i("", "FRIEND_ID");
			createDialogDelete();
			dialogDelete.show();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	EditText add_name, add_phone, add_sex, add_home;
	EditText delete_id;

	Button add_ok, add_no;
	Button delete_ok, delete_no;

	Dialog dialogAdd, dialogDelete;

	public void createDialogAdd() {
		Log.i("", "createDialogAdd");
		View viewAdd = this.getLayoutInflater().inflate(R.layout.add, null);

		dialogAdd = new Dialog(this);
		dialogAdd.setContentView(viewAdd);
		dialogAdd.setTitle("输入新成员信息");

		add_name = (EditText) viewAdd.findViewById(R.id.add_name);
		add_phone = (EditText) viewAdd.findViewById(R.id.add_phone);
		add_sex = (EditText) viewAdd.findViewById(R.id.add_sex);
		add_home = (EditText) viewAdd.findViewById(R.id.add_home);

		add_ok = (Button) viewAdd.findViewById(R.id.add_ok);
		add_no = (Button) viewAdd.findViewById(R.id.add_no);

		add_ok.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String[] data = { add_phone.getText().toString(),
						add_sex.getText().toString(),
						add_home.getText().toString() };

				addInfo(add_name.getText().toString(), data);

				dialogAdd.dismiss();

				adapter.notifyDataSetChanged();
			}
		});

		add_no.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub
				dialogAdd.dismiss();
			}
		});
	}

	public void createDialogDelete() {
		View viewDelete = this.getLayoutInflater().inflate(R.layout.delete,
				null);

		dialogDelete = new Dialog(this);
		dialogDelete.setContentView(viewDelete);
		dialogDelete.setTitle("删除指定成员");

		delete_id = (EditText) viewDelete.findViewById(R.id.delete_id);
		delete_ok = (Button) viewDelete.findViewById(R.id.delete_ok);
		delete_no = (Button) viewDelete.findViewById(R.id.delete_no);

		delete_ok.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub

				String id = delete_id.getText().toString();

				if (!id.equals("")) {
					int i = Integer.parseInt(id);
					group.remove(i);
					child.remove(i);

					dialogDelete.dismiss();

					adapter.notifyDataSetChanged();
				}

			}
		});

		delete_no.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub
				dialogDelete.dismiss();
			}
		});
	}

}


2.InfoDetailsAdapter.java(适配器文件,用于提供给View内容)

Java代码 复制代码
  1.   
  2. package cn.com.example;   
  3.   
  4. import java.util.List;   
  5. import android.app.Activity;   
  6. import android.view.Gravity;   
  7. import android.view.View;   
  8. import android.view.ViewGroup;   
  9. import android.widget.AbsListView;   
  10. import android.widget.BaseExpandableListAdapter;   
  11. import android.widget.TextView;   
  12.   
  13. //为expandable list view 提供内容的基类   
  14. public class InfoDetailsAdapter extends BaseExpandableListAdapter {   
  15.     Activity activity;   
  16.   
  17.     List<String> group;   
  18.     List<List<String>> child;   
  19.   
  20.     public InfoDetailsAdapter(Activity a, List<String> group,   
  21.             List<List<String>> child) {   
  22.         activity = a;   
  23.         this.group = group;   
  24.         this.child = child;   
  25.     }   
  26.   
  27.     // child method stub   
  28.   
  29.     @Override  
  30.     public Object getChild(int groupPosition, int childPosition) {   
  31.         // TODO Auto-generated method stub   
  32.         // System.out.println("*******************"+child.get(groupPosition).get(childPosition));   
  33.         return child.get(groupPosition).get(childPosition);   
  34.     }   
  35.   
  36.     @Override  
  37.     public long getChildId(int groupPosition, int childPosition) {   
  38.         // TODO Auto-generated method stub   
  39.         return childPosition;   
  40.     }   
  41.   
  42.     @Override  
  43.     public int getChildrenCount(int groupPosition) {   
  44.         // TODO Auto-generated method stub   
  45.         return child.get(groupPosition).size();   
  46.     }   
  47.   
  48.     @Override  
  49.     public View getChildView(int groupPosition, int childPosition,   
  50.             boolean isLastChild, View convertView, ViewGroup parent) {   
  51.         // TODO Auto-generated method stub   
  52.         String string = child.get(groupPosition).get(childPosition);   
  53.         return getGenericView(string);   
  54.     }   
  55.   
  56.     // group method stub   
  57.     @Override  
  58.     public Object getGroup(int groupPosition) {   
  59.         // TODO Auto-generated method stub   
  60.         return group.get(groupPosition);   
  61.     }   
  62.   
  63.     @Override  
  64.     public long getGroupId(int groupPosition) {   
  65.         // TODO Auto-generated method stub   
  66.         return groupPosition;   
  67.     }   
  68.   
  69.     @Override  
  70.     public int getGroupCount() {   
  71.         // TODO Auto-generated method stub   
  72.         return group.size();   
  73.     }   
  74.   
  75.     @Override  
  76.     public View getGroupView(int groupPosition, boolean isExpanded,   
  77.             View convertView, ViewGroup parent) {   
  78.         // TODO Auto-generated method stub   
  79.         String string = group.get(groupPosition);   
  80.         return getGenericView(string);   
  81.     }   
  82.   
  83.     // View stub to create Group/Children 's View   
  84.     public TextView getGenericView(String s) {   
  85.         // Layout parameters for the ExpandableListView   
  86.         AbsListView.LayoutParams lp = new AbsListView.LayoutParams(   
  87.                 ViewGroup.LayoutParams.FILL_PARENT, 64);   
  88.   
  89.         TextView text = new TextView(activity);   
  90.         text.setLayoutParams(lp);   
  91.         // Center the text vertically   
  92.         text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);   
  93.         // Set the text starting position   
  94.         text.setPadding(36000);   
  95.   
  96.         text.setText(s);   
  97.         return text;   
  98.     }   
  99.   
  100.     @Override  
  101.     public boolean hasStableIds() {   
  102.         // TODO Auto-generated method stub   
  103.         return false;   
  104.     }   
  105.   
  106.     @Override  
  107.     public boolean isChildSelectable(int groupPosition, int childPosition) {   
  108.         // TODO Auto-generated method stub   
  109.         return true;   
  110.     }   
  111.   
  112. }  
package cn.com.example;

import java.util.List;
import android.app.Activity;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

//为expandable list view 提供内容的基类
public class InfoDetailsAdapter extends BaseExpandableListAdapter {
	Activity activity;

	List<String> group;
	List<List<String>> child;

	public InfoDetailsAdapter(Activity a, List<String> group,
			List<List<String>> child) {
		activity = a;
		this.group = group;
		this.child = child;
	}

	// child method stub

	@Override
	public Object getChild(int groupPosition, int childPosition) {
		// TODO Auto-generated method stub
		// System.out.println("*******************"+child.get(groupPosition).get(childPosition));
		return child.get(groupPosition).get(childPosition);
	}

	@Override
	public long getChildId(int groupPosition, int childPosition) {
		// TODO Auto-generated method stub
		return childPosition;
	}

	@Override
	public int getChildrenCount(int groupPosition) {
		// TODO Auto-generated method stub
		return child.get(groupPosition).size();
	}

	@Override
	public View getChildView(int groupPosition, int childPosition,
			boolean isLastChild, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		String string = child.get(groupPosition).get(childPosition);
		return getGenericView(string);
	}

	// group method stub
	@Override
	public Object getGroup(int groupPosition) {
		// TODO Auto-generated method stub
		return group.get(groupPosition);
	}

	@Override
	public long getGroupId(int groupPosition) {
		// TODO Auto-generated method stub
		return groupPosition;
	}

	@Override
	public int getGroupCount() {
		// TODO Auto-generated method stub
		return group.size();
	}

	@Override
	public View getGroupView(int groupPosition, boolean isExpanded,
			View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		String string = group.get(groupPosition);
		return getGenericView(string);
	}

	// View stub to create Group/Children 's View
	public TextView getGenericView(String s) {
		// Layout parameters for the ExpandableListView
		AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT, 64);

		TextView text = new TextView(activity);
		text.setLayoutParams(lp);
		// Center the text vertically
		text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
		// Set the text starting position
		text.setPadding(36, 0, 0, 0);

		text.setText(s);
		return text;
	}

	@Override
	public boolean hasStableIds() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean isChildSelectable(int groupPosition, int childPosition) {
		// TODO Auto-generated method stub
		return true;
	}

}


至于里面的方法各自起什么作用,可以自己进行测试
3.main.xml布局文件

Java代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent" android:id="@+id/layout">   
  5.     <ExpandableListView android:id="@+id/expandList"  
  6.         android:layout_width="fill_parent" android:layout_height="wrap_content" />   
  7. </LinearLayout>  
<?xml version="1.0" encoding="utf-8"?>
<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">
	<ExpandableListView android:id="@+id/expandList"
		android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>


4.add.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">   
  5.   
  6.     <LinearLayout android:orientation="horizontal"  
  7.         android:layout_width="wrap_content" android:layout_height="wrap_content">   
  8.         <TextView android:layout_width="wrap_content"  
  9.             android:layout_height="wrap_content" android:text="姓名:" />   
  10.         <EditText android:id="@+id/add_name" android:layout_width="200dip"  
  11.             android:layout_height="wrap_content" />   
  12.     </LinearLayout>   
  13.   
  14.     <LinearLayout android:orientation="horizontal"  
  15.         android:layout_width="wrap_content" android:layout_height="wrap_content">   
  16.         <TextView android:layout_width="wrap_content"  
  17.             android:layout_height="wrap_content" android:text="电话:" />   
  18.         <EditText android:id="@+id/add_phone" android:layout_width="200dip"  
  19.             android:layout_height="wrap_content" />   
  20.     </LinearLayout>   
  21.   
  22.     <LinearLayout android:orientation="horizontal"  
  23.         android:layout_width="wrap_content" android:layout_height="wrap_content">   
  24.         <TextView android:layout_width="wrap_content"  
  25.             android:layout_height="wrap_content" android:text="性别:" />   
  26.         <EditText android:id="@+id/add_sex" android:layout_width="200dip"  
  27.             android:layout_height="wrap_content" />   
  28.     </LinearLayout>   
  29.   
  30.     <LinearLayout android:orientation="horizontal"  
  31.         android:layout_width="wrap_content" android:layout_height="wrap_content">   
  32.         <TextView android:layout_width="wrap_content"  
  33.             android:layout_height="wrap_content" android:text="住址:" />   
  34.         <EditText android:id="@+id/add_home" android:layout_width="200dip"  
  35.             android:layout_height="wrap_content" />   
  36.     </LinearLayout>   
  37.   
  38.     <LinearLayout android:orientation="horizontal"  
  39.         android:layout_width="wrap_content" android:layout_height="wrap_content">   
  40.         <Button android:id="@+id/add_ok" android:layout_width="90dip"  
  41.             android:layout_height="wrap_content" android:text="OK" />   
  42.         <Button android:id="@+id/add_no" android:layout_width="90dip"  
  43.             android:layout_height="wrap_content" android:text="NO" />   
  44.     </LinearLayout>   
  45.   
  46. </LinearLayout>  
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">

	<LinearLayout android:orientation="horizontal"
		android:layout_width="wrap_content" android:layout_height="wrap_content">
		<TextView android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="姓名:" />
		<EditText android:id="@+id/add_name" android:layout_width="200dip"
			android:layout_height="wrap_content" />
	</LinearLayout>

	<LinearLayout android:orientation="horizontal"
		android:layout_width="wrap_content" android:layout_height="wrap_content">
		<TextView android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="电话:" />
		<EditText android:id="@+id/add_phone" android:layout_width="200dip"
			android:layout_height="wrap_content" />
	</LinearLayout>

	<LinearLayout android:orientation="horizontal"
		android:layout_width="wrap_content" android:layout_height="wrap_content">
		<TextView android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="性别:" />
		<EditText android:id="@+id/add_sex" android:layout_width="200dip"
			android:layout_height="wrap_content" />
	</LinearLayout>

	<LinearLayout android:orientation="horizontal"
		android:layout_width="wrap_content" android:layout_height="wrap_content">
		<TextView android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="住址:" />
		<EditText android:id="@+id/add_home" android:layout_width="200dip"
			android:layout_height="wrap_content" />
	</LinearLayout>

	<LinearLayout android:orient

  


  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics