Мне нужно выполнить задачу, когда фрагмент открывается в первый раз, я использовал общие предпочтения для этого, но я получаю ниже исключения. Есть ли другой способ или предложение?NullPointerException при использовании SharedPreference во фрагменте
Мой код:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
boolean first = sharedPref.getBoolean("firstTime", true);
private void gaCheck()
{
if (first) {
// doing something
sharedPref.edit().putBoolean("firstTime", false).apply();
}
}
Исключение:
03-19 10:56:48.393 2547-2547/xyz.com.xyz E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: xyz.com.xyz, PID: 2547
java.lang.RuntimeException: Unable to start activity ComponentInfo{xyz.com.xyz/xyz.com.xyz.dashboard.DashBoardActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences xyz.com.xyz.dashboard.DashBoardActivity.getPreferences(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences xyz.com.xyz.dashboard.DashBoardActivity.getPreferences(int)' on a null object reference
at xyz.com.xyz.dashboard.DashBoardFragment.<init>(DashBoardFragment.java:427)
at xyz.com.xyz.dashboard.DashBoardActivity.onCreate(DashBoardActivity.java:80)
at android.app.Activity.performCreate(Activity.java:5933)
где у вас есть фрагмент кода? – Raghunandan
убедитесь, что с помощью 'SharedPreferences sharedPref = getActivity(). GetPreferences (Context.MODE_PRIVATE);' строка внутри метода вместо этого на уровне класса –
да, где у вас есть этот блок кода в вашем фрагменте? –