如何在android中生成动态控件?

时间:2016-10-05 08:38:10

标签: android android-layout dynamic controls

我希望按用户特定值动态生成控件。 就像我有ControlTed的EditText,控制宽度,控制高度等。 基于该值我想生成控件

LinearLayout L1 = new LinearLayout(this);
    L1.setOrientation(LinearLayout.VERTICAL);

    LinearLayout.LayoutParams L1paeam = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    L1.setLayoutParams(L1paeam);

    TextView T1 = new TextView(this);
    T1.setText(R.string.Dynamic_text);
    L1.addView(T1);

    Button B1=new Button(this);
    B1.setText("Dynamic Button");
    L1.addView(B1);

    setContentView(L1);

在此代码中指定了control-id Layout_height和Layout_width,但我希望它们是用户指定的

2 个答案:

答案 0 :(得分:0)

您可以在视图容器(LinearLayout,RelativeLayout等)中添加任何视图,并在运行时删除这些视图。创建视图并为该视图指定布局参数。

答案 1 :(得分:0)

这是我找到的解决方案。

public void generateButton(String Id,int Width,int Height,String text){
    @IdRes
            int id = Integer.parseInt(Id);
    LinearLayout.LayoutParams L1param = new LinearLayout.LayoutParams(Width, Height);
    final Button B1=new Button(this);
    B1.setId(id);
    B1.setText(text);
    B1.setLayoutParams(L1param);
    B1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           // Button click operation goes here
        }
    });
    layout_main.addView(B1);
}