动态地根据String变量的值更改自定义按钮(xml文件)的背景

时间:2017-09-16 17:25:37

标签: java android xml

我在活动中有自定义按钮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文件不被视为一个整数。\

有没有正确的方法来实现这个目标?

如果没有,请建议我另一种方法来实现这一点。

2 个答案:

答案 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...