`
djun100
  • 浏览: 167696 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android在布局文件指定位置动态增加删除布局

 
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none" >

    <LinearLayout
        android:id="@+id/dictLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:scrollbars="" >

        <TableLayout
            android:id="@+id/dictTable"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="1" >


             <LinearLayout
                android:id="@+id/ll_fill_out_the_insured_message"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="@style/insure_message"
                    android:text="被保险人信息" />
                
                <!-- 保险人姓名et_insurer_name -->

                <EditText
                    android:id="@+id/et_insurer_name"
                    style="@style/fill_out_insure_message"
                    android:text="红绿蓝" />

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:paddingBottom="@dimen/activity_insurance_information"
                    android:paddingLeft="@dimen/activity_insurance_information"
                    android:paddingRight="@dimen/activity_insurance_information"
                    android:paddingTop="@dimen/activity_insurance_information" >

                    <!-- 身份证 ib_identity_card -->

                    <ImageButton
                        android:id="@+id/ib_identity_card"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_gravity="center_vertical"
                        android:background="@drawable/check_in_round_s"
                        android:paddingLeft="10dp" />

                    <TextView
                        style="@style/insure_message"
                        android:text="身份证" />

                    <!-- 护照 ib_passport -->

                    <ImageButton
                        android:id="@+id/ib_passport"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="20dp"
                        android:background="@drawable/check_in_round_s"
                        android:paddingLeft="10dp" />

                    <TextView
                        style="@style/insure_message"
                        android:text="护照" />
                </LinearLayout>

                <!-- 身份证 et_identity_card_id -->

                <EditText
                    android:id="@+id/et_identity_card_id"
                    style="@style/fill_out_insure_message"
                    android:text="@string/insure_identity_card" />

                <!-- 护照et_passport_id -->

                <EditText
                    android:id="@+id/et_passport_id"
                    style="@style/fill_out_insure_message"
                    android:text="@string/insure_passport" />
                <!-- 邮箱 et_e_mail -->

                <EditText
                    android:id="@+id/et_e_mail"
                    style="@style/fill_out_insure_message"
                    android:text="@string/insure_e_mail" />
                <!-- 提交申请 bt_submit_applications -->
            </LinearLayout>
        </TableLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/btnAdd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:text=" 添 加 " />
            
             <Button
                    android:id="@+id/btn_delete"
                    android:text="删除"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>
package tgb.lk.tablelayout;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager.LayoutParams;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RemoteViews.RemoteView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 实现功能: 1.使用TableLayout动态布局展示,可动态添加和删除. 2.初始化时显示动态展示,初始化的数据改造后可来自数据库.
 * 3.重置时到初始化状态. 4.保存时去重检查,参见代码中去重算法.
 * 
 * @author likun date: 2012-04-07
 */
public class MainActivity extends Activity {
	private Button btnAdd = null;
	private LinearLayout layout;
	private LinearLayout layout2;

	private Button btn_delete;

	private int entity_id = 0;
	private String entity_name = "";

	private DictDaoImpl dao = null;
	private TableLayout table = null;
	private int orders = 0; // 用户记录最大的orders值

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dict_item);

		// 实例化按钮并设置监听器.
		btnAdd = (Button) findViewById(R.id.btnAdd);
		btn_delete = (Button) findViewById(R.id.btn_delete);

		btnAdd.setOnClickListener(listener);
		btn_delete.setOnClickListener(listener);

		entity_id = 1; // intent.getIntExtra(CrmConstances.ID, 0);
		entity_name = "区域";// intent.getStringExtra(CrmConstances.NAME);

		table = (TableLayout) findViewById(R.id.dictTable);

		appendNewRow(table);
	}

	OnClickListener listener = new OnClickListener() {

		@Override
		public void onClick(View v) {

			switch (v.getId()) {
			case R.id.btnAdd:
				appendNewRow(table);
				break;

			case R.id.btn_delete:
				table.removeViewAt(table.getChildCount()-1);
				table.removeViewAt(table.getChildCount()-1);
				break;
			default:
				break;
			}

		}
	};

	

	public void toastShow(String text) {
		Toast.makeText(this, text, 1000).show();
	}

	private void appendNewRow(final TableLayout table) {
		TableRow row = new TableRow(this);
		row.setId(0);
		orders++;

		TableRow row1 = new TableRow(this);
		TextView text1 = new TextView(this);
		text1.setText("被保险人信息");
		text1.setVisibility(View.VISIBLE);
		row1.addView(text1);

		EditText et = new EditText(this);
		et.setText("红绿蓝");
		et.setVisibility(View.VISIBLE);
		TableRow row2 = new TableRow(this);
		row2.addView(et);

		TableRow row5 = new TableRow(this);	
		
		ImageView image = new ImageView(this);
		image.setBackgroundResource(R.drawable.check_in_round_s);
		image.setVisibility(View.VISIBLE);
/*		image.setX(15);
		image.setY(15);*/
		
		EditText dictName = new EditText(this);
		dictName.setText("");
		dictName.setHint("请输入业务字典名称");
		dictName.setPadding(3, 3, 3, 3);
		dictName.setWidth(190);
		dictName.setGravity(Gravity.CENTER);
		row5.addView(image);
		row5.addView(dictName);

		TableRow row3 = new TableRow(this);
		EditText order = new EditText(this);
		order.setText(String.valueOf(orders));
		order.setPadding(3, 3, 3, 3);
		order.setWidth(40);
		order.setGravity(Gravity.CENTER);
	
		
		row3.addView(order);
		
		
		EditText et1 = new EditText(this);
		et.setText("红绿蓝");
		et.setVisibility(View.VISIBLE);
		TableRow row6 = new TableRow(this);
		row6.addView(et1);

		EditText et2 = new EditText(this);
		et.setText("红绿蓝");
		et.setVisibility(View.VISIBLE);
		TableRow row7 = new TableRow(this);
		row7.addView(et2);

		EditText et3 = new EditText(this);
		et.setText("红绿蓝");
		et.setVisibility(View.VISIBLE);
		TableRow row8 = new TableRow(this);
		row8.addView(et3);

		Button oper = new Button(this);
		oper.setText("删除");
		oper.setPadding(3, 3, 3, 3);
		order.setWidth(60);
		oper.setGravity(Gravity.CENTER);
		oper.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				//table.removeView(table.findViewById(0));
			}
		});

		layout = new LinearLayout(this);
		layout.setOrientation(LinearLayout.VERTICAL);
		layout.addView(row1);
		layout.addView(row2);
		layout.addView(row3);
		layout.addView(row5);
		layout.addView(row6);
		layout.addView(row7);
		layout.addView(row8);
		layout.addView(oper);
		
		EditText et4 = new EditText(this);
		et4.setText("红绿蓝");
		et4.setVisibility(View.VISIBLE);
		EditText et5 = new EditText(this);
		et5.setText("红绿蓝ssss");
		et5.setPadding(10, 0, 0, 0);
		et5.setVisibility(View.VISIBLE);

		layout2 = new LinearLayout(this);
		layout2.setOrientation(LinearLayout.HORIZONTAL);
		layout2.addView(et4);
		layout2.addView(et5);
		table.addView(layout);
		table.addView(layout2);
		;

	}

}


分享到:
评论

相关推荐

    精通ANDROID 3(中文版)1/2

    13.4.2 布局文件  13.4.3 菜单文件  13.4.4 描述文件  13.5 组件和进程寿命  13.5.1 活动生命周期  13.5.2 服务生命周期  13.5.3 接收程序生命周期  13.5.4 提供程序生命周期  13.6 代码编译说明 ...

    Android移动开发实验6.doc

    " "三、实验内容与步骤 " "(1)修改新建项目的res/layout目录下的布局文件activity_main.xml,将" "默认添加TextView组件删除,然后添加一个id为next的按钮,设置显示文字" "为"奋斗"; " "(2)在MainActivity的...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    疯狂Android讲义源码

     2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用XML布局文件和Java  代码混合控制UI界面 42  2.1.5 开发自定义View 43  2.2 布局管理器 46  2.2.1 线性布局 47  2.2.2 ...

    android开发实例大全_王东华

    实例038:动态添加或删除菜单 96 实例039: 自定义Android控件实现单选 按钮 100 实例040: 使用自定义控件在屏幕中绘 制一条虚线 104 实例041: 在屏幕中实现手风琴效果 106 第3章 自动化服务实例集锦 109 实例...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

    《Android移动应用开发(第3版)卷Ⅰ:基础篇》涵盖了作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术,包括移动开发过程与传统软件开发的区别,还包括帮助你节约宝贵时间和...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    精通Android 3 (中文版)2/2

    13.4.2 布局文件  13.4.3 菜单文件  13.4.4 描述文件  13.5 组件和进程寿命  13.5.1 活动生命周期  13.5.2 服务生命周期  13.5.3 接收程序生命周期  13.5.4 提供程序生命周期  13.6 代码编译说明 ...

    Xamrin Android开发实战 源代码

    2.8.1 指定Android SDK位置 70 2.8.2 快速运行Android模拟器 72 2.8.3 Windows Phone模拟器不可用 73 2.9 使用XAML构建界面 78 2.9.1 XAML介绍 78 2.9.2 创建XAML页面 78 2.9.3 生成文件介绍 79 2.9.4 构建...

    Google Android SDK开发范例大全的目录

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

    疯狂Android讲义.part1

    2.1.2 使用XML布局文件控制UI 界面 40 2.1.3 在代码中控制UI界面 41 2.1.4 使用XML布局文件和Java 代码混合控制UI界面 42 2.1.5 开发自定义View 43 2.2 布局管理器 46 2.2.1 线性布局 47 2.2.2 表格布局 49 2.2.3 帧...

    Android代码-FamiliarRecyclerView

    FamiliarRecyclerView 这是一个如你熟悉ListView、...// 设置分割线(也可以在布局文件中直接指定分割线Divider及分割线大小,当然你也可以使用自己的分割线实现) mRecyclerView.setDivider() 如果是网格或瀑布流视图

    Google Android SDK 开发范例大全01

    4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...

Global site tag (gtag.js) - Google Analytics