由于我对 Java 和 Android 编程还很陌生,所以我正在慢慢适应 Android studio 和资源系统、xml 管理等。
我正在尝试创建一个开始计数为 10 个 EditText 的 Activity ,在 LinearLayout 中垂直列出。 到目前为止,我可以使用 XML 文件管理所有内容并对 10 个 EditText 进行硬编码。
它的问题是,我想提供一个按钮,用户可以单击该按钮以自动展开列表,例如在运行时向列表添加 10 个以上的 EditText。 AFAIK,我不能只用 XML 解决这个问题。 我知道,我可以使用 LayoutInflater().inflate 将布局(XML 布局)获取到我的 MainActivity 类中的对象......
这是我的问题: 在 XML 文件中定义布局并使用上述方法修改它是正确的方法还是在我的类中使用 Java 创建整个布局会更好: LinearLayout layout = new LinearLayout(this); //添加编辑文本 //设置属性 //setContentView(布局);
使用这种方式是否有任何缺点,或者它是否与使用 XML 相同?我的意思是,为了稍后再次处理创建的 EditText,我还必须向它们传递一个 ID,因此我还必须创建一个 ids.xml,其中列出了所有这些 ID。这听起来对我来说工作量很大..
我的方法是否正确,或者是否有更好的选项来创建/操作布局?
最佳答案
如果你想用多个 View 填充一个 ListView ,最好使用适配器。适配器可用于填充列表,并将行添加到该列表。
如果您需要有关如何创建列表的教程:http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
关于 Adapter 最好的部分是,您可以为其创建自定义布局。因此,如果您想要一个仅包含 EditText 或 ImageView 的列表项,则很容易创建。
最后,您将只有 1 个用于行的布局文件和 1 个包含列表的布局文件。
扩充布局总是比创建它们更容易,例如“LinearLayout layout = new LinearLayout(this);//添加 EditTexts//设置属性//setContentView(layout);”
有很多关于如何创建 Adapter 的教程,你会明白的!
关于Java & 安卓 : Best way to create a dynamically expandable list of EditTexts in an activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723031/