【发布时间】:2017-11-17 22:30:32
【问题描述】:
我正在制作一个应用程序,它将在同一布局上包含 81 个按钮。它们都被称为我创建的名为“Tile”的对象。问题是这些图块存储在一个数组中,因此我需要知道以 int 格式单击了哪个按钮才能调用图块(tiles[??])。我正在使用onClick(View v) 方法。我也试过这个:
Log.i("Tile", v.getId() + "was clicked")
它在 logcat 中给我的结果是一个非常长的整数。
那么我怎样才能知道哪个按钮以数字格式被点击了呢?随便的 id (R.id.tile1) 和这个长整数有什么关系,因为它已经是一个数字了?
PS:我知道我可以使用 Switch 将每个 id 分配给一个整数,但是由于它们是 81,这将是浪费时间并且会使代码变得非常复杂。
【问题讨论】:
-
为什么不用postion来判断点击的是哪个按钮呢?
-
我不明白,请您提供更多详细信息。谢谢;)
-
您正在使用点击监听器,例如:tiles[i].setOnClickListener(this);对吗?
-
我认为您应该使用带有按钮自定义布局的 GridView。通过它您可以轻松获得单击哪个按钮的位置....顺便说一下,如果您对按钮感到满意,那么您必须在按钮的 onClick() 中进行切换条件并像 v.getId()==R 进行比较.id.tile1,它将为您提供确切的值作为您单击的按钮的 id。
-
@PhilippeSarouphim 在您的 xml 文件中设置“android:tag=1”的简单解决方案..等等所有按钮最多为 81。现在实现 OnClickListerner。在 OnClickListener 中编写 view.getTag() ,它会返回您的按钮编号,现在您可以轻松执行操作了。
标签: java android android-button