簡體   English   中英

如何在SherlockFragment中訪問共享偏好

[英]How to access sharedpreferences in SherlockFragment

我在選項卡中使用sherlock片段,但我無法訪問sharedpreference或保存它,我該怎么辦? 這是我的代碼:

 public class SettingsActivity extends SherlockFragment  {

    private CheckBox cb1;
    private Context context = getActivity();
    private SharedPreferences sp;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.settings_layout, container, false);
        cb1 = (CheckBox)rootView.findViewById(R.id.cb1);
        sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
        cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            public void onCheckedChanged (CompoundButton cb, boolean isChecked) {
                if (isChecked) {
                    context.getSharedPreferences("some_pref", Context.MODE_PRIVATE)
                    .edit()
                    .putBoolean("some_bool_name", true)
                    .commit();
                }
            }
        });
        return rootView;
    }
}

如果上述方法不正確,請告訴我如何保存首選項。

logcat的

11-13 18:13:36.907:I / ActivityManager(10626):START u0 {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.myapp.test / .painActivity}來自pid 10836 11-13 18:13:36.907:D / ActivityManager(10626):TopActivityInfo,pkgName:com.myapp.test activityName:com.myapp.test.MainActivity bstSpecialAppKeyboardHandlingEnabled = false 11-13 18:13: 36.907:D / GuidanceScreen(10824):appName:My App,currentPkg:com.myapp.test,event:app_launch,controller:Keyboard 11-13 18:13:36.907:D / ActivityManager(10626):顯示pkgName的指南: com.myapp.test 11-13 18:13:36.917:D / GuidanceScreen(10824):appName:My App 11-13 18:13:36.987:D / GuidanceScreen(10824):com.myapp.test沒有指導。 11-13 18:13:37.037:D / WindowManager(10626):使用數據發送appClickStats請求:[package = com.myapp.test,appname = My App,appver = 1.0,clickloc = system_server] 11-13 18:13 :37.237:I / ActivityManager(10626):顯示com.myapp.test / .MainActivity:+ 260ms 11-13 18:13:46.227:D / AndroidRuntime(15464):來自cmdline的procName:com.myapp.test 11-13 18:13:46.227:E / AndroidRuntime(15464):在writeCrashedAppName中,pkgName:com.myapp.test 11-13 18:13:46.227:D / AndroidRuntime(15464):使用內容成功編寫的文件:com.myapp.test StringBuffer:; com.myapp.test 11-13 18:13:46.237:E / AndroidRuntime(15464):進程:com.myapp.test,PID:15464 11-13 18:13:46.237:E / AndroidRuntime(15464) :at com.myapp.test.SettingsActivity.onCreateView(SettingsActivity.java:40)11-13 18:13:46.267:I / ActivityManager(10626):進程com.myapp.test(pid 15464)已經死亡。 11-13 18:13:46.267:W / ActivityManager(10626):強制刪除ActivityRecord {4b12da0c u0 com.myapp.test / .MainActivity t17}:app死了,沒有保存狀態11-13 18:13:46.287:I / WindowState(10626):WIN DEATH:Window {4b1ac890 u0 com.myapp.test / com.myapp.test.MainActivity}

初始化共享首選項:

private SharedPreferences loginPreferences;
private SharedPreferences.Editor loginPrefsEditor;

在onCreateView()中:

loginPreferences = getActivity().getSharedPreferences("loginPrefs", getActivity().MODE_PRIVATE);
loginPrefsEditor = loginPreferences.edit();

保存:

loginPrefsEditor.putString("start_time", yourText);
loginPrefsEditor.commit();

檢索:

String dateString = loginPreferences.getString("start_time", "");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM