如何使用SharedPreferences中检索到的String

时间:2012-06-26 05:18:33

标签: android string compare sharedpreferences

我的PreferenceActivity显示了几个ListPreferences。从启动此活动的类中,我监听SharedPreferences上的任何更改并使用getString(String key,String default)来获取所选选项。

当我检索这个String时,我需要执行某些操作,具体取决于它是什么字符串。但是,我将如何使用String。如果它是一个int,我可以使用switch case但是我怎么处理Strings?

除了使用if-else和使用String.equals比较2个字符串之外还有其他方法吗? 或者有没有办法检索选定的位置而不是选定的字符串?

3 个答案:

答案 0 :(得分:1)

您可以将所有String存储到HashMap以及相应的int值,然后在switch上设置int个案例。< / p>

答案 1 :(得分:1)

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

查看值是字符串它会抛出异常并转到捕获阻止以便您可以 理解来自首选项的calue是String ..你相应地在catch块内填充..

否则,如果值为 int ,则在尝试阻止中执行您的操作。

答案 2 :(得分:0)

如果你必须有一个表示位置的int,你可以使用String数组和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;
    }
}