将String转换为Color int

Jak*_*kob 2 java string int android remoteview

    String ColorString = "Color.BLUE";

    int colorint = Integer.parseInt(ColorString);

    ...

    views.setTextColor(R.id.tvConfigInput, colorint);
Run Code Online (Sandbox Code Playgroud)

为什么会崩溃?在我得到的logcat中java.lang.numberformatexception: Invalid int "Color.BLUE"

我认为它在从字符串到int的转换中是错误的,因为如果我只是像这样设置int:

int colorint = Color.BLUE;
Run Code Online (Sandbox Code Playgroud)

它有效..但我不知道它有什么问题.

非常感谢

Ahm*_*mad 5

常数值为Color.Blue:-16776961(0xff0000ff).你没有解析int,你只是试图解析一个字符串并将其转换为int(这将无法工作).

"Color.BLUE"不是整数,但Color.BLUE最终会返回一个常量值.

你需要这样做才能做到正确:

int colorInt = Color.BLUE;
views.setTextColor(R.id.tvConfigInput, colorInt);
Run Code Online (Sandbox Code Playgroud)

编辑:

String ColorString = "BLUE";
int colorInt = Color.parseColor(ColorString);
views.setTextColor(R.id.tvConfigInput, colorInt);
Run Code Online (Sandbox Code Playgroud)

  • @Jakob:尝试使用`Color.parseColor` (2认同)