Android 如何使用从SharedReferences检索到的字符串

Android 如何使用从SharedReferences检索到的字符串,android,string,compare,sharedpreferences,Android,String,Compare,Sharedpreferences,我的首选项活动显示了几个列表首选项。在启动此活动的类中,我监听SharedReferences上的任何更改,并使用getString(String键,String默认值)获取所选选项 当我检索这个字符串时,我需要根据它是什么字符串执行某些操作。但是,我将如何使用字符串。如果它是int,我可以使用switch case,但是如何处理字符串呢 除了使用if-else和String.equals来比较这两个字符串,还有其他方法吗? 或者是否有方法检索所选位置而不是所选字符串 您可以将所有字符串与相应的

我的首选项活动显示了几个列表首选项。在启动此活动的类中,我监听SharedReferences上的任何更改,并使用getString(String键,String默认值)获取所选选项

当我检索这个字符串时,我需要根据它是什么字符串执行某些操作。但是,我将如何使用字符串。如果它是int,我可以使用switch case,但是如何处理字符串呢

除了使用if-else和String.equals来比较这两个字符串,还有其他方法吗?
或者是否有方法检索所选位置而不是所选字符串

您可以将所有
字符串
与相应的
int
值一起存储到
哈希映射
中,然后在
int
上设置一个
开关
大小写

    int k = 0;
    String i = "Namratha"; // replace the value from Shared Preference
    try {
        k = Integer.parseInt(i);
    } catch (Exception e) {
        Log.v("Exception**********", e.getMessage());
    }
查看值是否为String,它将抛出异常,并转到捕获块,以便 从首选项是字符串中理解计算。。你们有并没有相应地把东西放在挡块内


否则,如果值为int,则在中执行操作,然后尝试block

如果必须使用int表示位置,则可以使用字符串数组和Arrays.binarySearch方法

private static final String[] VALUES = { "a", "b", "c", "d", "e" };

public void processSelection( String selectedValue ) {  
    int pos = Arrays.binarySearch( VALUES, selectedValue );

    switch (pos) {
    case 0:
        ... 
    break;

    default:
        break;
    }
}

你试过试抓块吗?使用Integer.parseInt(value)将值转换为int,如果值为int,则没有pblm,如果是String,则会得到相应的异常处理。。我认为你应该使用NumberFormatException