在android中动态添加UI元素

时间:2017-03-13 22:14:57

标签: android

我想在我的Android应用程序中添加一些ui元素,例如Button! 但我找不到完整的教程!经过大量搜索,我发现了这段代码:

LinearLayout ll = (LinearLayout)findViewById(R.id.layout);
Button btn = new Button(this);
btn.setText("Manual Add");
btn.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
ll.addView(btn);

我的第一个问题是第一线!你能帮我解释一下吗?什么是R.id.layout?我知道R是资源的对象,但我不知道什么是布局! 第二个问题是第3行,什么是LayoutParams?

谢谢大家!

3 个答案:

答案 0 :(得分:1)

 LinearLayout ll = (LinearLayout)findViewById(R.id.layout);// you are getting a refrence to your layout
 Button btn = new Button(this); // creating a new object of button type
 btn.setText("Manual Add"); //setting the button text
 btn.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
 LayoutParams.WRAP_CONTENT)); //setting the width and height of the element
 ll.addView(btn);//adding the button to your layout

R.id.layout是您的活动布局的名称

答案 1 :(得分:1)

您可以使用默认构造函数创建视图,例如

Button button = new Button(context);

之后,您应确定要将哪种类型的父视图附加到其中,并创建相应的layot参数。每个父视图LayoutParams类型都有uniqe自定义方法,例如RelativeLayout.LayoutParams的规则。

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height)
//customize params here
button.setLayoutParams(params)

将视图附加到父视图

frameLayout.addView(button)

就是这样。

答案 2 :(得分:0)

您要添加视图的父视图。在您的示例中,它是名为layout的LinearLayout。