2016-01-16 2 views
-1

Ошибка исключения исключения указателя. Я пытаюсь получить доступ к sharedpreferences в адаптере, но не знаю, почему он показывает некоторое исключение NullPointerException. Вот журнал и код.SharedPreferences в моем адаптере

01-16 21:20:05.546 15405-15405/com.adequatsol.hdwallpaper E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.adequatsol.hdwallpaper, PID: 15405 
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.adequatsol.hdwallpaper/com.adequatsol.hdwallpaper.FullImageActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2546) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
     at android.app.ActivityThread.access$900(ActivityThread.java:177) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:145) 
     at android.app.ActivityThread.main(ActivityThread.java:5942) 
     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:1399) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference 
     at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:184) 
     at com.adequatsol.hdwallpaper.ImageAdapter.<init>(ImageAdapter.java:47) 
     at com.adequatsol.hdwallpaper.FullImageActivity.<init>(FullImageActivity.java:28) 
     at java.lang.reflect.Constructor.newInstance(Native Method) 
     at java.lang.Class.newInstance(Class.java:1650) 
     at android.app.Instrumentation.newActivity(Instrumentation.java:1079) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2536) 

вот мой код snipet

SharedPreferences sharedPreferences ; 


public Integer [] selectedArray ; 
public ImageAdapter(Context c){ 
    mContext = c; 
    sharedPreferences = mContext.getSharedPreferences("MyPref", 0); 
    int opt = sharedPreferences.getInt("option", 0); 
    switch (opt) 
    { 
     case 1: 
      selectedArray = mThumbIds ; 
      break; 
     case 2: 
      selectedArray = landThumbIds ; 
      break; 
     case 3: 
      selectedArray = carsThumbIds ; 
      break; 
    } 

} 
+0

Контекст вы прошли в с равно нулю – Keshav

+0

Покажите нам код, в котором конструктор ImageAdapter вызывается , Контекст: – Raghunandan

+0

gridView.setAdapter (новый ImageAdapter (это)); его в моей MainActivity – deejay

ответ

0

Пройди свой контекст деятельности

gridView.setAdapter(new ImageAdapter(YourActivity.this)); 
+0

ничего .. все еще такая же ошибка – deejay

+0

может быть вместо активности, передайте 'YourActivity.getApplicationContext()', так как это практически гарантировано не-nullable – stanfordude