使用SharedPreferences保存/加载活动首次启动不起作用

时间:2016-12-02 09:48:57

标签: android sharedpreferences

首次推出MainActivity时,我提出了这个方法:

startChoice = SharedUtilities.getInstance().getChoice(getApplicationContext());
        if(startChoice ==""){
            start(MainActivity.this,RegistrationActivity.class);
        }else{
            ........
}

这是获取String startChoice

的方法
public String getChoice(Context context) {
        appSharedPrefs = context.getSharedPreferences("PsiceToday",Context.MODE_PRIVATE);
        thisChoise = appSharedPrefs.getString("Choice","");
        return thisChoise;
    }

方法start(MainActivity.this,RegistrationActivity.class)从未调用过,因为在调试startChoise时它不等于""。

你认为我在实施中做错了吗?

2 个答案:

答案 0 :(得分:1)

使用string.equals(Object other)函数比较字符串,而不是==运算符。

答案 1 :(得分:1)

试试这个

这是utils类方法

 public static String ReadSharePrefrence(Context context, String key) {
//        SharedPreferences read_data = context.getSharedPreferences(
//                Constant.SHRED_PR.SHARE_PREF, context.MODE_PRIVATE);
//
//        return read_data.getString(key, "");

        String data;
        final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        final SharedPreferences.Editor editor = preferences.edit();
        data = preferences.getString(key, "");
        editor.commit();
        return data;
    }

当你想使用它时。

String value = Utils.ReadSharePrefrence(this,Constant.KEY);
if(value.equalsIgnoreCase("")){
//put your code

}else{
//put your code.

}

这对我有用。