zoukankan      html  css  js  c++  java
  • 动态加控件

    布局的layout文件内容:
    ----------------------------------------------------------------------------------
    <?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/linearlayout">


    <LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content" android:layout_height="wrap_content">
    <Button android:layout_height="wrap_content" android:id="@+id/add"
      android:text="Add" android:layout_width="100px"></Button>
    <Button android:layout_height="wrap_content"
      android:layout_width="100px" android:text="Remove" android:id="@+id/remove"></Button>
    </LinearLayout>
    <TextView android:id="@+id/TextView01" android:text="This is textView."
    android:layout_width="fill_parent" android:gravity="center"
    android:layout_height="50px"></TextView>

    </LinearLayout>
    ----------------------------------------------------------------------------------

    对应Activity的内容:
    ----------------------------------------------------------------------------------
    package com.foxconn.dialog;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.Button;
    import android.widget.LinearLayout;

    public class DialogTest extends Activity implements OnClickListener {

        private Button add_btn, remove_btn;
        private LinearLayout linearLayout;
        private int index = 0;

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

        private void register() {
            add_btn.setOnClickListener(this);
            remove_btn.setOnClickListener(this);
        }

        private void findViews() {
            add_btn = (Button) findViewById(R.id.add);
            remove_btn = (Button) findViewById(R.id.remove);
            linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
        }

        protected View createView() {
            Button btn = new Button(this);
            btn.setId(index++);
            btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            btn.setText("aaaaaa" + index);
            return btn;
        }

        private void removeView() {
            //获取linearlayout子view的个数
            int count = linearLayout.getChildCount();
            //研究整个LAYOUT布局,第0位的是含add和remove两个button的layout
            //第count-1个是那个文字被置中的textview
            //因此,在remove的时候,只能操作的是0<location<count-1这个范围的
            //在执行每次remove时,我们从count-2的位置即textview上面的那个控件开始删除~
            if (count - 2 > 0) {
                //count-2>0用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button
                linearLayout.removeViewAt(count - 2);
            }
        }

        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.add:
                linearLayout.addView(createView(), 1);
                break;
            case R.id.remove:
                removeView();
                break;
            default:
                break;
            }
        }
    }

  • 相关阅读:
    网络操作系统(WebOS)网站
    各种邀请码:Evernote 3.0,wallop,qolin等等
    urlrewrite 的使用方法
    一次事故处理情况(mysql 相关)
    开始使用ubuntu办公
    Q邻:网络桌面
    数据库表字段命名规范
    计算机专业导学
    详解GCC的下载和安装
    三层的解释
  • 原文地址:https://www.cnblogs.com/cnsanshao/p/2148750.html
Copyright © 2011-2022 走看看