我正在尝试创建一个表单,可以在用户点击按钮时添加其他字段,即包含LinearLayout
和2 TextView
的A EditText
。与联系人应用类似。任何人都可以推荐教程或示例吗?
答案 0 :(得分: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);
答案 1 :(得分:1)
您可以通过将新组件添加到xml中的父布局定义来添加新组件
(您可以通过为其提供ID来引用该布局,并使用LinearLayout linearLayout = findViewById(R.id.idOfLayout);
在此LinearLayout
中获取该父布局,并通过动态创建它来添加其他布局,从而在您的活动中访问该布局/ p>
以下是一些链接,可帮助您了解动态添加和删除Android中的组件
Build dynamic form through code Link.. LinearLayout adding removing ElementsLink..