2015-11-13 1 views
6

タブにシャーロックフラグメントを使用していますが、sharedpreferenceにアクセスできません。どうすればできますか?これは私のコードです:SherlockFragmentのsharedpreferencesにアクセスする方法

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):スタートU0 {行為= android.intent.action.MAIN猫= [android.intent.category。ランチャー] flg = 0x10200000 cmp = com.myapp.test/.MainActivity} from pid 10836 11-13 18:13:36.907:D/ActivityManager(10626):TopActivityInfo、pkgName:com.myapp.test activityName:com.myappアプリケーション名:MyApp、currentPkg:com.myapp.test、イベント:app_launch、controller:Keyboard 11-13 18:13:36.907:D/GuidanceScreen(10824):appName:MyApp、currentPkg:com.myapp.testイベント:app_launch、コントローラ:キーボード 11-13 18: 13:36.907:D/ActivityManager(1 0626):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リクエストを送信する:[パッケージ= 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):procName from cmdline: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):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}を削除しました:アプリが死亡しました。保存されていません 11-13 18:13:46.287: I /のWindowState(10626):WINのDEATH:

private SharedPreferences loginPreferences; 
private SharedPreferences.Editor loginPrefsEditor; 

内部onCreateView():ウィンドウ{4b1ac890 U0 com.myapp.test/com.myapp.test.MainActivity}

+0

問題は何ですか?あなたはエラーがありますか?またはデータが保存されませんか? – walkmn

+0

アプリを強制終了します。そのようなSPにアクセスしようとすると、 –

+0

はlogcat – walkmn

答えて

0

初期優先共用しました。

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

セーブ:

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

取得:

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

質問のlogcatを見てください! –

関連する問題