【问题标题】:Add buttons dynamically [closed]动态添加按钮[关闭]
【发布时间】:2015-12-14 10:16:04
【问题描述】:

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

我想编写一个测验应用程序,并且我想为每个答案添加一个按钮。但是每个答案的答案数量不应该相同。这就是我想动态添加按钮的原因。我看到了一些通过代码添加按钮的示例代码。

有什么方法可以让我不必通过代码添加每个按钮?我正在考虑一种类似 WPF 的方式,在我的视图模型中有一个带有答案的列表,而我的 xaml 正在自动生成按钮(例如,带有 ItemTemplate 的 ListView)。

感谢 MattMatt 回答我的问题!

【问题讨论】:

  • 可以动态添加按钮创建按钮对象并添加到根布局
  • 问题不清楚,请详细说明您的问题
  • 更改了我的答案以使其更清楚。就像我写过几次一样,我要求一种无需通过代码添加任何按钮的方式......
  • 我们不想从零开始你的代码,试着做你的代码然后告诉我们你的问题,谢谢。

标签: android android-layout android-button


【解决方案1】:

在 Android 平台上,Button 是一个特定的小部件,旨在在单击时执行特定操作。您描述了对列表格式的动态按钮数量的需求,为此您应该使用RecyclerView,这将允许您将数据绑定到可点击项目的数量。

如果您希望 RecyclerView 列表中的每个项目的外观看起来像一个按钮,您可以通过从内置 Button 小部件继承样式来设置 XML 行项目的样式,使其看起来像一个。 This question 询问如何为具有背景的项目设置样式以提供类似按钮的视觉状态。

【讨论】:

  • 谢谢!感谢您将我的问题读到最后。这正是我想知道的。
【解决方案2】:
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?

【讨论】:

  • 那么不通过代码添加每个按钮就没有办法了吗?
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多