2016-08-25 2 views
1

私は、異なる言語をサポートするためにアンドロイドのリソースから文字列を使用する必要があります。 スイッチケースは文字列をリソースから定数として受け取っていません。 R.string.exampleenumでの文字列リソースの使用とスイッチの場合の使用

同様 は、だから私は、Androidで文字列リソースを使用して一定の列挙型を使用するようにenums.Need例を使用する必要があり、スイッチケースでそれを使用して、あなたがそれらを比較することはできませんので

+1

R.string.exampleはintであり、スイッチケース –

答えて

1

enumsはuserdefine定数でありますリソース(あなたは列挙型に文字列値を代入し、String resourece値を持つ等しい関数を使ってそれらを比較するようなことができます)を避けてください。

あなたがリソース「のstrings.xml」にケース文字列入力を切り替える追加して使用できるようにAndroidは、XML内のすべてのリソースのユニークなint IDを管理してもあなたが1.7以上のJavaを使用してスイッチの文字列を使用することができるよう

switch (stringResourceID) { 
case R.string.first_string: 
    break; 
case R.string.second_string: 
    break; 
case R.string.third_string: 
    break; 
default: 
    break; 
} 
int型

また、あなたは、「公共の静的な最終文字列」と定数を作成することができ、それらを簡単にアクセスできるように、あなたは別のファイルにこのような定数を宣言する必要がある場合のラベルとしてそれらを使用

public static final String C1="first"; 
public static final String C2="second"; 
public static final String C3="third"; 


    switch (yourInputString) { 
    case C1: 
     break; 
    case C2: 
     break; 
    case C3: 
     break; 
    default: 
     break; 
    } 

example

+0

で使用できます。私の要件はリソースfolder.iの文字列を使用することです。case文ではR.string.third_stringを使用できません。コンパイルエラーです。 – user1721936

+0

あなたは何か間違っている必要があります。 lemmeスクリーンショットを追加して表示する –

関連する問題