动态添加或删除视图

时间:2011-10-14 16:49:06

标签: android android-source

对于我的项目,我需要一个动态添加和删除视图的功能(textedit或按钮等)。

我在Android“添加联系人”屏幕中看到了这个类似功能,其中加号按钮添加新字段,减号按钮删除字段。

我发现EditContactActitivity.java是“添加联系人”背后的文件。

我试图找到按下加号或减号按钮时调用的方法,但无法找到它,似乎“添加联系人”代码在多个文件上传播。我无法理解Android源代码,因为文档不可用 有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以在对主要布局的引用上调用.add().remove()并传递您要添加或删除的视图来添加和删除视图;

这是一个简单的onCreate方法示例,演示了如何添加和删除按钮:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LinearLayout myMainLayout = (LinearLayout)findViewById(R.id.yourMainLayout);
    Button b = new Button(this);
    //you can have some b.setXXX calls here to set text, view, click listeners etc...
    myMainLayout.add(b);



    //to remove
    myMainLayout.remove(b);

}

答案 1 :(得分:0)

我会考虑研究视图的可见性,而不是经历所有这些麻烦。例如。我有一个应用程序,我有一个“记录”输入屏幕相对简单,显示为Dialogs内容。一些视图/视图组目前正在使用已消失的可见性,根本不显示。如果用户编辑记录以添加更多细节,我将启动一个使用相同xml布局的Activity,但实例化一些当前“已消失”的视图并将其可见性更改为“可见”。

以编程方式轻松切换视图的可见性,因此我认为这是真正的方法。

我所知道的唯一限制是视图顺序或位置。