动态添加按钮

时间:2015-12-14 10:16:04

标签: android android-layout android-button

我想使用Android Studio编写我的第一个Android应用程序并遇到一些问题。

我想写一个quizapp,每个答案我想添加一个按钮。但每个答案的答案数应该不一样。这就是我想要动态添加按钮的原因。我看到了一些示例代码,其中的按钮是通过代码添加的。

有什么方法我不必通过代码添加每个按钮?我正在考虑像在WPF中的方式,我在我的viewmodel中有一个包含答案的列表,我的xaml会自动生成按钮(例如ListView with ItemTemplate)。

请MattMatt回答我的问题!

2 个答案:

答案 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?