我想使用Android Studio编写我的第一个Android应用程序并遇到一些问题。
我想写一个quizapp,每个答案我想添加一个按钮。但每个答案的答案数应该不一样。这就是我想要动态添加按钮的原因。我看到了一些示例代码,其中的按钮是通过代码添加的。
有什么方法我不必通过代码添加每个按钮?我正在考虑像在WPF中的方式,我在我的viewmodel中有一个包含答案的列表,我的xaml会自动生成按钮(例如ListView with ItemTemplate)。
请MattMatt回答我的问题!
答案 0 :(得分:1)
在Android平台上,Button是一个特定的小部件,用于在单击时执行特定操作。您需要以列表格式描述动态数量的按钮,为此您应该使用RecyclerView,这样您就可以将数据绑定到可点击项目的数量。
如果希望RecyclerView列表中每个项目的外观看起来像一个按钮,则可以通过从内置Button小部件继承样式来将XML行项目设置为样式。 This question询问如何使用背景设置项目样式以提供类似Button的视觉状态。
答案 1 :(得分:0)
LinearLayout layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
layout.setOrientation(LinearLayout.VERTICAL); //Can also be done in xml by android:orientation="vertical"
for (int i = 0; i < 3; i++) {
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
for (int j = 0; j < 4; j++ {
Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btnTag.setText("Button " + (j + 1 + (i * 4));
btnTag.setId(j + 1 + (i * 4));
row.addView(btnTag);
}
layout.addView(row);
}
http://www.mysamplecode.com/2011/10/android-programmatically-generate.html
Add button to a layout programmatically
How do I programmatically add buttons into layout one by one in several lines?