将按钮数组添加到 Android 应用程序中的 GridView

2024-04-15

我的应用程序将有 5-15 个按钮,具体取决于后端可用的内容。如何定义正确的 GridView 布局文件以包含一组按钮,每个按钮都有不同的文本和其他属性?每个按钮本质上都会将一个商品添加到购物车,因此除了添加到购物车的商品之外,onClick 代码将是相同的。

如何定义一个数组,以便添加可变数量的按钮,但仍通过唯一 ID 引用每个按钮?我见过的例子数组.xml http://developer.android.com/guide/samples/ApiDemos/res/values/arrays.html,但他们创建了一个预先设置的字符串数组。我需要一种方法来创建对象,而不需要在布局或数组 xml 文件中定义文本。

更新 - 添加了有关添加到 GridView 的信息

我想将其添加到 GridView,因此调用 [addView 方法](http://developer.android.com/reference/android/widget/AdapterView.html#addView(android.view.View,%20int) http://developer.android.com/reference/android/widget/AdapterView.html#addView(android.view.View,%20int)导致 UnsupportedOperationException。我可以执行以下操作:

ImageButton b2 = new ImageButton(getApplicationContext());
b2.setBackgroundResource(R.drawable.img_3);
android.widget.LinearLayout container = (android.widget.LinearLayout) findViewById(R.id.lay);
container.addView(b2);

但这并没有像我想要的那样将按钮布局在网格中。这可以在 GridView 中完成吗?


在下面的代码中,您应该更改for到一个变量。

public class MainActivity
        extends Activity
        implements View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TableLayout layout = new TableLayout (this);
        layout.setLayoutParams( new TableLayout.LayoutParams(4,5) );

        layout.setPadding(1,1,1,1);

        for (int f=0; f<=13; f++) {
            TableRow tr = new TableRow(this);
            for (int c=0; c<=9; c++) {
                Button b = new Button (this);
                b.setText(""+f+c);
                b.setTextSize(10.0f);
                b.setTextColor(Color.rgb( 100, 200, 200));
                b.setOnClickListener(this);
                tr.addView(b, 30,30);
            } // for
            layout.addView(tr);
        } // for

        super.setContentView(layout);
    } // ()

    public void onClick(View view) {
        ((Button) view).setText("*");
        ((Button) view).setEnabled(false);
    }
} // class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将按钮数组添加到 Android 应用程序中的 GridView 的相关文章

随机推荐

  • 为什么sonar:sonar需要先安装mvn?

    官方文档http docs sonarqube org display SONAR Analyzing with Maven http docs sonarqube org display SONAR Analyzing with Mave
  • iOS:通过自定义 UITableViewCell 上的 UITextView 选择

    我有一个带有图像和 UITextView 属性的自定义 UITableViewCell 文本视图跨越到单元格的边缘 我的问题是点击文本视图未在 didSelectRowAtIndexPath 中注册 我怎样才能让我可以 点击 我的文本视图
  • Login-AzureRmAccount 命令无法从托管 C# 应用程序运行

    我正在使用 powershell 脚本登录到 azure 为此我编写了简单的命令 Login AzureRmAccount 并在单击按钮时将该脚本调用到 C 代码中 它在本地工作正常 但是当我在服务器上托管此页面时 身份验证弹出窗口未打开
  • 如何在 PHP 中打印今天的尼泊尔日期? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想以不同的日期格式回显打印尼泊尔日历日期 请看一下下面的代码 有一个 jquery 日期选择器 http sajanmaharjan c
  • 是否可以预加载和缓存视频文件而不将它们添加到 DOM?

    我正在开发一款游戏 根据得到的结果触发 30 个小视频文件中的一个 由于视频需要在用户交互后立即播放 因此理想情况下我希望预加载视频并准备好播放 我添加了 PreloadJS 对我需要的所有资源进行了排队 查看检查器中的 网络 选项卡 我可
  • ed25519.公开结果不同

    使用包https github com golang crypto tree master ed25519 https github com golang crypto tree master ed25519我正在尝试获取给定私钥的公钥 这
  • 将变量传递到 xp_cmdshell

    我在 SQL Server 中有一个存储过程 用于检查今天的备份文件 文件名中包含日期的文件 检查完毕后 将继续进行robocopy这些文件到另一个文件夹 挑战 在此文件夹中 可能存在昨天或其他日期的文件 但只需要今天的bak文件来传输 d
  • 错误域=NSOSStatusErrorDomain 代码=-12780 \"(null)\"

    当我尝试使用 AVAssetExport 导出资产时 仅在通过 Whatsapp 接收的视频上可能会出现以下错误 我找不到可行的解决方案 我还尝试实现代码来修复视频持续时间 但我没有修复它 错误是 错误域 NSOSStatusErrorDo
  • Webpack 4.编译scss分离css文件

    我试图将 scss 编译成一个单独的 css 文件 但没有成功 现在 css 与所有 js 代码一起进入到bundle js 中 我怎样才能将我的CSS分离到它自己的文件中 这是我的配置的样子 var path require path m
  • 使用 jQuery 检查链接是否仍然有效

    我创建了一个快速功能 使用 AJAX 检查页面上的每个链接 看看它们是否仍然有效 这似乎有效 但它为每个类添加了成功和错误类 如何让错误回调函数仅在 AJAX 响应为 404 时抛出 li each function this childr
  • 如何垂直对齐 IE 输入框上的文本

    I have this http jsfiddle net dVDT8 code
  • 获取虚拟目录中文件的本地路径

    我有一个 ASP NET Core 3 0 MVC 应用程序 其中包含图像 例如 http foo bar images image jpg 现在 文件夹images is a 虚拟目录映射到网络驱动器 例如 192 168 1 1 ima
  • 如何增加 Qt 中线程的堆栈大小 - QThread::setStackSize() 似乎不起作用?

    从问题来看 运行批量插入或替换 500 行时 SQLite 堆栈溢出 为什么 https stackoverflow com questions 22576958 sqlite stack overflow when running a b
  • Gnuplot multiplot 中的双柱图

    我尝试创建多图 2x2 和单图的组合 我不知道 我做错了什么 但我不知道该怎么做 我的尝试 plot sin x title this should be a single plot set multiplot layout 2 2 tit
  • 是否可以过滤开放扩展?

    我正在考虑选择开放扩展还是架构扩展 架构扩展 我知道我可以过滤 但由于我没有注册任何有效的顶级域名 所以我最终得到了一个丑陋的架构名称 这不是一个阻碍 只是一个小小的刺激 我正在向组添加自定义元数据 并希望将查询限制为具有特定元数据值的所有
  • 扩展现有的 jQuery 函数

    我正在尝试编写一个插件来扩展 jQuery 中的现有功能 例如 function fn css function stuff I will be extending that doesn t affect change the way cs
  • Rails:ActiveRecord:RecordNotUnique 与first_or_create

    我的模型表中有这个索引 UNIQUE KEY index panel user offer visits on offer id and panel user id offer id panel user id 这段代码 def get o
  • 重复 Microsoft Word VBA 直到找不到搜索结果

    我创建了一个 MS Word 宏 用于搜索某些文本 由标记代码表示 剪切文本并将其插入到新的脚注中 然后从脚注中删除标记代码 现在我希望宏重复 直到它在文本中找不到更多标记代码 这是下面的宏 Sub SearchFN find a foot
  • 如何在VS2013中为新项目设置默认.NET框架?

    我正在开发一个针对 net 4 0 的项目 它不会很快更改为 4 5 当我创建新项目时 它默认为 net 4 5 无论如何 我可以在 Visual Studio 级别全局将其默认为 4 0 或者 更好 在解决方案级别默认它为 4 0 吗 最
  • 将按钮数组添加到 Android 应用程序中的 GridView

    我的应用程序将有 5 15 个按钮 具体取决于后端可用的内容 如何定义正确的 GridView 布局文件以包含一组按钮 每个按钮都有不同的文本和其他属性 每个按钮本质上都会将一个商品添加到购物车 因此除了添加到购物车的商品之外 onClic