我在活动中有自定义按钮b
。我为该按钮的背景定义了6个xml
个文件。现在我想根据字符串b
将这些6个xml文件中的一个设置为str
的背景,该字符串可以有6个值。
例如
str = "A"
然后,按钮应该有第一个xml文件作为背景。
str = "B"
然后,按钮应该有第二个xml文件作为背景。
str = "C"
然后,按钮应该有第三个xml文件作为背景。
等等。
我尝试将所有这6个xml文件放在drawable
文件夹中,并且我使用了b.setBackground(R.drawable.custom_button_1)
,但是它给出了一个错误,因为它期望一个int值,并且xml文件不被视为一个整数。\
有没有正确的方法来实现这个目标?
如果没有,请建议我另一种方法来实现这一点。
答案 0 :(得分:1)
SetBackground需要drawable not int,如你所提到的。 你可以使用
b.setBackground (ContextCompat.getDrawable(context, R.drawable.custom_button_1));
或
b.setBackgroundResource(R.drawable.custom_button_1);
答案 1 :(得分:1)
String text = b.getText().toString();
if (text.equals("A")) {
b.setBackgroundResource(R.drawable.custom_button_1);
}
if (text.equals("B")) {
b.setBackgroundResource(R.drawable.custom_button_2);
}
and so on...