将字符串传递给活动中的服务

时间:2012-03-26 22:57:16

标签: java android eclipse string int

好吧,我有一个活动。在活动中有一个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中的十六进制值是颜色,因为它可以在需要时更改...

2 个答案:

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