Android - 在Fragment中使用SharedPrefs

时间:2016-01-13 11:09:16

标签: android android-fragments sharedpreferences

我正在尝试使用共享首选项。

我为此创建了一个类 -

package com.bscheme.linkkin.utils;

import android.content.Context;
import android.content.SharedPreferences;
import com.bscheme.linkkin.R;

public class SharedDataSaveLoad {

    public static void save(Context context, String key, String value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(context.getResources().getString(R.string.preference_file_key),Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
    }
    public static void save(Context context,String key, int value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(context.getResources().getString(R.string.preference_file_key),Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt(key, value);
        editor.commit();
    }

    public static String  load(Context context, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(context.getResources().getString(R.string.preference_file_key), Context.MODE_PRIVATE);
        return sharedPreferences.getString(key, "");
    }
    public static int loadInteger(Context context,String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(context.getResources().getString(R.string.preference_file_key), Context.MODE_PRIVATE);
        return sharedPreferences.getInt(key, 0);
    }

    public static void remove(Context context,String key){
        SharedPreferences sharedPreferences = context.getSharedPreferences(context.getResources().getString(R.string.preference_file_key),Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.remove(key);
        editor.commit();
    }


}

我有一个叫做 KindomFragment.java

的片段

KindomFragment.java 中使用辅助类 SharedDataSaveLoad.class ,就像这样 -

SharedDataSaveLoad.save(
                        KindomFragment.this,
                        getResources().getString(R.string.shared_pref_key_kingdom_last_updated),
                        String.valueOf(System.currentTimeMillis())
                       );

我得到了这个 -

enter image description here

有人可以帮忙吗?

提前感谢帮助:)。

1 个答案:

答案 0 :(得分:5)

您需要将Context作为第一个参数发布

SharedDataSaveLoad.save(
                                        getActivity(),
                                        getResources().getString(R.string.shared_pref_key_kingdom_last_updated),
                                        String.valueOf(System.currentTimeMillis())
                                    );