3

我正在尝试创建一个表单,当用户单击LinearLayout包含 aTextView和 2的按钮时,该表单可以添加其他字段EditText。类似于联系人应用程序。任何人都可以推荐一个教程或示例吗?

4

2 回答 2

2

创建一个包含您想要的动态视图的线性布局,创建一个您想要动态添加的布局文件,创建一个用于将该布局膨胀到您的活动的类,并使用其对象获取视图并将其添加到该框(其中的布局你想要动态视图)。你可以这样走。

public class BoxView {
    private Context context;
    private TextView tv;
    private EditText edt;
    private Button btn;
    private View v;

    public BoxView(Context context) {

        // TODO Auto-generated constructor stub
        this.context= context;
        init();
    }

    private void init() {
        // TODO Auto-generated method stub
        LayoutInflater inflator= LayoutInflater.from(context);
         this.v= inflator.inflate(R.layout.sample_layout, null);

        this.tv=(TextView)v.findViewById(R.id.textView1);
        this.edt=(EditText)v.findViewById(R.id.editText1);
        this.btn=(Button)v.findViewById(R.id.button1);

    }

    public View getView(){
        return v;
    }
    public void setTv(TextView tv) {
        this.tv = tv;
    }
    public TextView getTv() {
        return tv;
    }
    public void setEdt(EditText edt) {
        this.edt = edt;
    }
    public EditText getEdt() {
        return edt;
    }
    public void setBtn(Button btn) {
        this.btn = btn;
    }
    public Button getBtn() {
        return btn;
    }


}

在您的活动中,您可以这样做:

 LinearLayout layout=(LinearLayout)findviewbyId(R.id.layout1);
 BoxView box=new BoxView(context);
 layout.addView(box.getView);
于 2012-06-22T06:38:19.203 回答
2

您可以通过将新组件添加到 xml 中定义的父布局来添加新组件(您可以通过为其提供 id 来引用该布局,并通过在您的活动中使用它来访问它,您将LinearLayout linearLayout = findViewById(R.id.idOfLayout);获得LinearLayout该父布局,您可以通过动态向其添加另一个布局创建它们)

这里有一些链接可以帮助您了解在 Android 中动态添加和删除组件

通过代码链接构建动态表单 。LinearLayout 添加删除 ElementsLink..

于 2012-06-22T06:41:53.503 回答