2016-11-27 10 views
0

Ich bekomme eine Null-Zeiger-Ausnahme, wenn ich auf meine Spinner, die Json-Objekt in die nächste Aktivität übergibt.Ich bekomme eine Null Pointee Ausnahme, wenn ich einen Spinner

Hier ist mein Spinner Code

retrieveGames1BGTask = new RetrieveGames1BGTask(); 
     retrieveGames1BGTask.execute(); 
    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
        Intent intent = null; 
        switch (position) { 
         case 1: 
          intent = new Intent(view.getContext(), Basketball.class); 
          i.putExtra("json_data2", retrieveGames1BGTask.getResult()); 
          startActivity(intent); 
          Toast.makeText(parent.getContext(), 
            parent.getItemAtPosition(position).toString() + " View Selected", Toast.LENGTH_LONG).show(); 
          break; 
        } 
       } 

In meinem nächsten Tätigkeit habe ich diese Codezeile

if (intent != null) { 

      json_string1 = intent.getStringExtra("json_data2"); 
     } 

Die logcat sagt dieses

java.lang.NullPointerException                    at com.example.aaa.bbb.Games$1.onItemSelected(Games.java:216) 
at android.widget.AdapterView.fireOnSelected(AdapterView.java:964) at android.widget.AdapterView.access$200(AdapterView.java:49) 
    at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:928) 
    at android.os.Handler.handleCallback(Handler.java:733) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:146) 
    at android.app.ActivityThread.main(ActivityThread.java:5602) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
    at dalvik.system.NativeStart.main(Native Method) 
+0

Ihr Logcat scheint verschleierten Code zu zeigen. Bitte deaktivieren Sie die Verschleierung und repost. Auf welche Codezeile zeigt logcat, wenn "com.examaple ... onItemSelected (Games.java:xxx)" steht? Games.java ist die Aktivität, die den Spinner-Code hat? Ich schlage vor, dass Sie vollständigere Namen wie GameActivity.java und BasketballActivity.java verwenden, damit wir Ihren Code besser verstehen können. Beachten Sie, dass Sie getContext() zweimal von zwei verschiedenen Quellen (Ansicht und Eltern) anfordern. Wenn Sie trotzdem aktiv sind, verwenden Sie einfach Game.this. –

+0

Wie kann ich es deaktivieren Sir? –

+0

minifyEnabled false in Ihrer Gradle-Datei. –

Antwort

0

Sie versuchen zu binden die Liste möglicherweise bevor die Aufgabe beendet wurde. Es gibt keine Garantie, dass retrieveGames1BGTask vor dem Binden ausgeführt wird. Aus diesem Grund sollten Sie die onPostExecute-Methode in Ihrer AsyncTask überschreiben, um sicherzustellen, dass Sie nach Abschluss der Hintergrundaufgabe an Ihren Spinner gebunden haben.

+0

Ich habe asynctask nicht verwendet, um meine Daten in meinem Spinner zu füllen. –

+0

Sorry, ich meinte es als Extra für deine Absicht zu verwenden –

Verwandte Themen