0

嗨,我想问一下为什么我在 EditTextPreference 上的 sharedPreference 没有保存在这里是我的代码

    SharedPreferences coinPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    String coin_pref = coinPrefs.getString("currentCoin", null);
    Editor editor = coinPrefs.edit();

    if (Answer.equals("LEFTOVERS")){
        bg1 = 1;
        Coin = Integer.parseInt(coin_pref) + 3;
        coin_pref = String.valueOf(Coin);
        tvCoin.setText(coin_pref);
        editor.putString("coinValue", coin_pref);
        editor.commit();

    }

我在这里要做的是获取 Coin 值为 5,然后在其上添加 3,然后将其放入 coin_pref 中,然后将其放入 sharedPreference 中。我注意到我的 tvCoin.setText 是 5 变成了 8 但仍然没有将它保存在 EditTextPreference 中。在此先感谢您的帮助

已编辑

我尝试使用此代码

SharedPreferences coinPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    Integer coin_pref = coinPrefs.getInt("currentCoin", Coin);
    Editor editor = coinPrefs.edit();

    if (Answer.equals("LEFTOVERS")){
        bg1 = 1;
        Coin = coin_pref + 3;
        coin_pref = Coin;
        tvCoin.setText(coin_pref);
        editor.putInt("coinValue", coin_pref);
        editor.commit();
    }

并在 logcat 上得到了这个

11-30 21:26:55.691: D/dalvikvm(483): GC_FOR_MALLOC freed 2859 objects / 177440 bytes in 99ms
11-30 21:27:03.963: D/AndroidRuntime(483): Shutting down VM
11-30 21:27:03.971: W/dalvikvm(483): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-30 21:27:03.971: E/AndroidRuntime(483): FATAL EXCEPTION: main
11-30 21:27:03.971: E/AndroidRuntime(483): java.lang.NullPointerException
11-30 21:27:03.971: E/AndroidRuntime(483):  at com.thesis.logipic.Gameplay.beginnerChecking(Gameplay.java:501)
11-30 21:27:03.971: E/AndroidRuntime(483):  at com.thesis.logipic.Gameplay$1.onClick(Gameplay.java:434)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.view.View.performClick(View.java:2408)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.view.View$PerformClick.run(View.java:8816)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.os.Handler.handleCallback(Handler.java:587)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.os.Looper.loop(Looper.java:123)
11-30 21:27:03.971: E/AndroidRuntime(483):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-30 21:27:03.971: E/AndroidRuntime(483):  at java.lang.reflect.Method.invokeNative(Native Method)
11-30 21:27:03.971: E/AndroidRuntime(483):  at java.lang.reflect.Method.invoke(Method.java:521)
11-30 21:27:03.971: E/AndroidRuntime(483):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-30 21:27:03.971: E/AndroidRuntime(483):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-30 21:27:03.971: E/AndroidRuntime(483):  at dalvik.system.NativeStart.main(Native Method)
11-30 21:27:11.432: I/Process(483): Sending signal. PID: 483 SIG: 9
4

0 回答 0