Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 枚举中字符串资源的使用和开关情况下的使用_Java_Android - Fatal编程技术网

Java 枚举中字符串资源的使用和开关情况下的使用

Java 枚举中字符串资源的使用和开关情况下的使用,java,android,Java,Android,我有一个要求,我必须使用android资源中的字符串来支持不同的语言。 开关大小写未从资源中将字符串作为常量。 比如R.string.example 所以我必须使用枚举。需要一个例子,在android中使用字符串资源使用枚举常量,并在Switch case中使用它,因为枚举是用户定义的常量,所以您无法将它们与资源进行比较(您可以这样做,就像给枚举分配一个字符串值,然后使用equal函数与字符串资源值进行比较)这有点冗长,所以要避免 您可以在java 1.7+中使用带开关的字符串,尽管androi

我有一个要求,我必须使用android资源中的字符串来支持不同的语言。 开关大小写未从资源中将字符串作为常量。 比如R.string.example


所以我必须使用枚举。需要一个例子,在android中使用字符串资源使用枚举常量,并在Switch case中使用它,因为枚举是用户定义的常量,所以您无法将它们与资源进行比较(您可以这样做,就像给枚举分配一个字符串值,然后使用equal函数与字符串资源值进行比较)这有点冗长,所以要避免

您可以在java 1.7+中使用带开关的字符串,尽管android管理xml中每个资源的唯一
int
id,因此您可以将开关大小写字符串输入添加到资源“strings.xml”中,并像int一样使用

switch (stringResourceID) {
case R.string.first_string:
     break;
case R.string.second_string:
     break;
case R.string.third_string:
     break;
default:
     break;
}
您还可以使用“publicstaticfinalstring”创建常量,并将它们用作大小写标签,您应该在单独的文件中声明这样的常量,以便于访问

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

R.string.example是一个int,可以与开关case一起使用。我的要求是使用resources文件夹中的字符串。在case语句中,我不能使用R.string.third\u字符串,因为它会导致编译错误。您一定是做错了什么。让我添加一个屏幕截图来显示