Java& Android:在活动中创建动态可扩展的EditTexts列表的最佳方法?

时间:2014-12-31 15:25:04

标签: java android xml android-layout

因为我是Java和Android编程的新手,所以我慢慢习惯了Android工作室和资源系统,xml管理等等。

我正在尝试创建一个活动,其开始计数为10个EditTextes,在LinearLayout中垂直列出。 到目前为止,我可以使用XML文件管理所有内容。硬编码10个EditTextes。

问题在于,我想提供一个按钮,用户可以单击该按钮自动展开列表,例如在运行时向列表中再添加10个EditTextes。 AFAIK,我无法用XML解决这个问题。 我知道,我可以使用LayoutInflater()为我的MainActivity类中的对象获取布局(XML布局).netlate ...

这是我的问题: 它是在XML文件中定义布局并使用上述方法修改它的正确方法,还是在我的类中使用Java创建整个布局更好:     LinearLayout layout = new LinearLayout(this);     //添加EditTexts     //设置属性     //的setContentView(布局);

使用这种方式有什么缺点,还是与使用XML一样?我的意思是,为了在以后再次处理创建的EditTexts,我还必须向它们传递ID,因此我还必须创建一个ids.xml,其中列出了所有这些ID。这对我来说听起来很有用..

我是在正确的方式还是有更好的选择来创建/操纵布局?

1 个答案:

答案 0 :(得分:1)

如果要使用多个视图填充列表视图,最好使用适配器。可以使用适配器填充列表,并将行添加到此列表中。
如果您需要有关如何创建列表的教程:http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

关于适配器的最佳部分是,您可以为它创建自定义布局。因此,如果您想要一个仅包含EditTexts或ImageViews的列表项,则可以轻松创建。

最后,您将只有1个行的布局文件和1个包含列表的布局文件。

膨胀布局总是比创建它们更容易,比如“LinearLayout layout = new LinearLayout(this); //添加EditTexts // set attributes // setContentView(layout);”

有很多关于如何创建适配器的教程,你会得到它!