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 }