【问题标题】:Android: String and a shared Preference string not matchingAndroid:字符串和共享首选项字符串不匹配
【发布时间】:2013-12-24 19:24:32
【问题描述】:

我正在从 url 上的文本文件中抓取一个字符串并将其保存到 sharedPreferences ...然后下次它抓取该字符串时,它将它与存储在共享首选项中的旧字符串进行比较,如果它不同,它会通知用户.

我从 url 获取字符串并保存在 sharedPreferences 中,但是当我尝试将它们与 if (x == y) 语句进行比较时,结果总是不一样;

这里是 onPostExecute()

protected void onPostExecute(String result) {
    String Input;
    String oldInput;
    Input = result.toString();
    oldInput = currentSavedSettings();
    if (Input == oldInput){
        Toast.makeText(MainActivity.this, "fixed", Toast.LENGTH_LONG).show();
    } else {
        savePrefs("CURRENT_SETTINGS_FILE", Input);
        //the toasts were used to ensure that neither were returning null
        Toast.makeText(MainActivity.this, oldInput, Toast.LENGTH_LONG).show();
        Toast.makeText(MainActivity.this, Input, Toast.LENGTH_LONG).show();
        // the following is commented out until I fix this issue
        //createNotification();
    }   
}

以及获取旧的 CURRENT_SETTINGS_FILE 的 currentSavedSettings

private String currentSavedSettings() {     
    SharedPreferences sp =
        PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
    String result = sp.getString("CURRENT_SETTINGS_FILE", null);
    return result;
}

为了更好地衡量,这是我用来保存 SharedPreference 的方法

private void savePrefs(String key, String value) {
    SharedPreferences sp = PreferenceManager
            .getDefaultSharedPreferences(MainActivity.this);
    Editor edit = sp.edit();
    edit.putString(key, value);
    edit.commit();
}

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

    使用.equals.equalsIgnoreCase 比较字符串。

    更多信息

    How do I compare strings in Java?

    【讨论】:

    • @MasterZangetsu 很高兴帮助您了解 3 品脱是什么?
    【解决方案2】:

    你试过了吗,

    passcode == pref_passcode // is not the same according to Java
    
    String passcode;
    
    pref_passcode.contentEquals(passcode); //try this or
    
    pref_passcode.equals(passcode)
    

    您应该始终使用其中之一来比较字符串。不要使用等号 (==)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      相关资源
      最近更新 更多