繁体   English   中英

将字符串转换为Color int

[英]Convert String to Color int

    String ColorString = "Color.BLUE";

    int colorint = Integer.parseInt(ColorString);

    ...

    views.setTextColor(R.id.tvConfigInput, colorint);

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

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

int colorint = Color.BLUE;

它有效..但是我不知道这是怎么回事。

非常感谢

Color.Blue的常量值为:-16776961(0xff0000ff)。 您不是在解析一个int,而是在尝试解析一个字符串并将其转换为int(这是行不通的)。

“ Color.BLUE”不是整数,但是Color.BLUE最终将返回一个常数。

您需要这样做以使其正确:

int colorInt = Color.BLUE;
views.setTextColor(R.id.tvConfigInput, colorInt);

编辑:

String ColorString = "BLUE";
int colorInt = Color.parseColor(ColorString);
views.setTextColor(R.id.tvConfigInput, colorInt);

您是否尝试过使用枚举?

public enum Color{
    BLUE(42);

    private int hex;

    Color(int hex){
        this.hex = hex;
    }

    public int getHexCode(){return hex;}
    public String getName(){ return this.name();}
}

这样,您可以分配可以表示多个值的字符串文字

Color.BLUE.getHext() == 42
Color.BLUE.name() == "BLUE"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM