好吧,我有一个活动。在活动中有一个textview和一个按钮。该按钮启动ColorPicker,当选择颜色时,它会将十六进制值放在textview中。
现在,在服务中我试图将字符串转换为颜色int。然后将textview背景颜色设置为textview中的十六进制值。见下面的例子......
在我的main.xml中,我有一个textview和一个按钮。 Textview将在其文本中设置十六进制值。
在我的服务中,我有一个imageview。要设置imageview的背景颜色,我从主活动中的textview获取文本,然后创建一个字符串。然后我将它转换为Int。但当我干燥以将颜色设置为背景时,它会强制关闭!
`BatteryBarTop = (ImageView) view.findViewById(R.id.battery_bar_top);
String tbColor = Setting.ColorValue.getText().toString();
int color = Color.parseColor(tbColor);
BatteryBarTop.setBackgroundResource(color);`
如果我为“颜色”添加十六进制值,它将完美地工作。但我需要textview中的十六进制值是颜色,因为它可以在需要时更改...
答案 0 :(得分:1)
您正在呼叫setBackgroundResource()
。这需要资源ID。使用setBackgroundColor()
设置颜色。
答案 1 :(得分:0)
BatteryBarTop = (ImageView) view.findViewById(R.id.battery_bar_top);
String value = Setting.ColorValue.getText().toString();
int setColor = Integer.parseInt(value);
try {
BatteryBarTop.setBackgroundColor(setColor);
}
catch (NumberFormatException e)
{
// handle the exception
}