Android动态添加和移除布局

 1 package com.hyang.administrator.studentproject;
 2
 3 import android.os.Bundle;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.LinearLayout;
 9 import android.widget.TextView;
10
11 import org.xutils.view.annotation.ViewInject;
12 import org.xutils.x;
13
14 import java.util.Stack;
15
16 /**
17  * 动态添加布局
18  */
19 public class DynamicAddViewActivity extends AppCompatActivity {
20
21     @ViewInject(R.id.parent_layout)
22     private LinearLayout mParentlayout;
23
24     @ViewInject(R.id.add_view_button)
25     private Button addViewButton;
26     @ViewInject(R.id.remove_view_button)
27     private Button removeViewButton;
28
29     private LayoutInflater mLayountInflater;
30     private LinearLayout linearlayout;
31
32     private static int i=0;
33     private Stack<View> mStack;
34
35     @Override
36     protected void onCreate(Bundle savedInstanceState) {
37         super.onCreate(savedInstanceState);
38         setContentView(R.layout.activity_dynamic_add_view);
39         x.view().inject(this);
40
41         mStack=new Stack<>();
42         initView();
43     }
44
45     private void initView() {
46         mLayountInflater=LayoutInflater.from(this);
47         //mLayountInflater=getLayoutInflater();
48         //mLayountInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
49
50         addViewButton.setOnClickListener(new InnerOnClickListener());
51         removeViewButton.setOnClickListener(new InnerOnClickListener());
52     }
53
54     class InnerOnClickListener implements View.OnClickListener{
55
56         @Override
57         public void onClick(View v) {
58             switch (v.getId()){
59                 case R.id.add_view_button:
60                     addView();
61                     break;
62                 case R.id.remove_view_button:
63                     removeView();
64                     break;
65                 default:
66                     break;
67             }
68         }
69     }
70
71     private void removeView() {
72         if(mStack.size()>0){
73             mParentlayout.removeView(mStack.pop());
74         }
75
76
77     }
78
79     private void addView() {
80         linearlayout= (LinearLayout) mLayountInflater.inflate(R.layout.add_view,null);
81         TextView textView= (TextView) linearlayout.findViewById(R.id.add_text);
82         i++;
83         textView.setText("你添加的view"+i);
84         mParentlayout.addView(linearlayout);
85         mStack.push(linearlayout);
86     }
87 }
时间: 2024-08-06 04:44:05

Android动态添加和移除布局的相关文章

Android动态添加布局

//1.利用LayoutInflater的inflate动态加载XML mLinearLayout = (LinearLayout)findViewById(R.id.LinearLayout_ID); LayoutInflater layoutInflater = LayoutInflater.from(context); View view = layoutInflater.inflate(resource--需要加载的XML, null); XML:resource = R.layout.

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

Android动态添加Fragment

Android动态添加Fragment 效果图如下: 项目结构图如下: Fragment1: package com.demo.dongtaifragment; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutI

Android 动态添加图片 换行

<strong>近在项目中用到动态添加图片,然后换行的实现.刚开始想用GridView,但是没用,什么原因到是忘了.下面我记录一下我的实现方式.</strong> <strong> </strong> 看代码xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性

动态添加spinner 控件 Spinner s = new Spinner(this); String []items={"自己定义的要显示的数组"}; my_SpinnerAdapter array_adapter =new my_SpinnerAdapter(this, android.R.layout.simple_spinner_item, items); array_adapter .setDropDownViewResource(android.R.layout.simp

android动态添加view

动态添加一个view. 首先,搞清楚是哪个view(子view),要添加到哪个view(父view)中:其次,子view的属性怎么设置:这两个问题明白了,就容易了. 举个例子:比如要在一个LinearLayout中添加一个Button,  子view是Button,父view是LinearLayout. 子view的属性就是通过LayoutParams来设置的,注意是LinearLayout.LayoutParams,因为子view的高度,宽度这些都是针对父view的,要告诉父view自己要占用

如何使用validate.js进行动态添加和移除表单验证信息

表单是我们在开当中的常客,那么对表单的验证也是必须的,那么如何实现动态给表单添加验证规则呢? 方法: 1,动态添加验证规则 // 添加$("#addConnectUser").rules("add",{rules:{required:true,isString:true},messages:{required:"用户名为必填项",isString:"请输入规范字符"}});// 移除 $("#addConnectUs

js活jQuery实现动态添加、移除css/js文件

下面是在项目中用到的,直接封装好的函数,拿去在js中直接调用就可以实现css.js文件的动态引入与删除.代码如下 动态加载,移除,替换css/js文件 // 动态添加css文件 function addCss(filename){ var creatHead = $('head'); creatHead.append('<link rel="stylesheet" href="'+filename+'">') } // 移除css/js文件 functi

动态添加一个视图及其布局属性(要掌握)

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_w