2
    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;

それは動作します..しかし、それの何が問題なのかわかりません。

どうもありがとう

4

2 に答える 2

5

の定数値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);
于 2013-01-05T18:06:13.093 に答える
1

列挙型を使用してみましたか?

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"
于 2013-01-05T20:15:24.257 に答える