私は共有の設定に苦労していて、投稿とチュートリアルを見て、うまく動作しません。SharedPreferences.Editor NPE
私はついにこのコードをandroid.devからコピーしました。それは私にとってもうまくいきません。私が行った唯一の変更は、
です。1. ActivityではなくAppCompatActivityを拡張します。
2. printlnsと
を追加します。3. parmsをgetSharedPreferencesに追加します。
SharedPreferences.EditorのonPause()のNPEで失敗します。私はonStart()で例外を見つけません。
誰かが迷っていることを教えてもらえますか?前もって感謝します!
public class MainActivity extends AppCompatActivity {
static final int DAY_VIEW_MODE = 0;
static final int WEEK_VIEW_MODE = 1;
private SharedPreferences mPrefs;
private int mCurViewMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("onCreate() ");
SharedPreferences mPrefs = getSharedPreferences("MyPrefFile", 0);
mCurViewMode = mPrefs.getInt("view_mode", DAY_VIEW_MODE);
}
protected void onPause() {
super.onPause();
System.out.println("onPause() ");
SharedPreferences.Editor ed = mPrefs.edit();
ed.putInt("view_mode", mCurViewMode);
ed.commit();
}
}
ここでlogcatは、要求したエラーログですか?申し訳ありませんが、私はこれでかなり新しいです。 (UG ...これを共有するための良い方法は?あり)
java.lang.RuntimeException: Unable to pause activity {temperatureconverter.android.vogella.com.prefsfromandroiddev/temperatureconverter.android.vogella.com.prefsfromandroiddev.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2902)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2858)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2836)
at android.app.ActivityThread.access$900(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at temperatureconverter.android.vogella.com.prefsfromandroiddev.MainActivity.onPause(MainActivity.java:38)
at android.app.Activity.performPause(Activity.java:5286)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1240)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2889)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2858)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2836)
at android.app.ActivityThread.access$900(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
を書いて、あなたのエラーログを投稿することができますか? –