java - Android:从变量设置按钮的背景

标签 java android

我正在为 Android 编写一个问答应用程序,它由问题和图像选项组成。每个问题都有 2 个图像选项,它们是设置了不同背景的 Android 按钮。

只有两个 OnClickListener,我目前正在更改背景,如下所示:

button1.setBackground(R.drawable.image1)

我有 30 多个不同的图像将用作按钮的背景,并且使用硬编码的图像名称(例如 image1.png)调用上面的代码似乎效率低下。

我想让这一切都通过一个非常有效的函数来实现,如下所示:

nextQuestion(Question q)
{
display.setText("" + q.getQ()) ; // setting a new question to TextView called display
button1.setBackground(R.drawable.(q.getRandom())) ; //change background off of variable
button1.setBackground(R.drawable.(q.correctAnswerIndex)) ; // one is correct, one random
}

但是我找不到通过 setBackground() 使用变量的方法 有什么办法可以做我上面写的事情吗?预先感谢!

最佳答案

int resID = getResources().getIdentifier(icon, "drawable",  getPackageName()); 
iV.setImageResource(resID); 

将 resID 设置为您的“q”值并根据需要使用!

“icon”是可绘制对象的名称

关于java - Android:从变量设置按钮的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895110/

相关文章:

安卓 : How to hide Navigation bar and Optionmenu in login fragment?

android - 在同一布局中更改文本

Java.util.zip 添加新文件会覆盖整个 jar 吗?

java - 如何将 native 库文件夹添加到 Netbeans 中的现有项目

java - 使用整数数组 Android 获取布局

android - ContentProvider 调用原子? onPause保存,加载OnActivityCreated,旧数据

android - ADB 通过蓝牙 Android

java - 如何创建 char 类型的整数数组?

java - `ByteBuffer.allocateDirect` 和 Xmx

java - 如何通过扩展实例调用 BaseClass 方法