2016-06-17 7 views
0
public class Checkout extends AppCompatActivity { 

    //ArrayList<String> stringArray = new ArrayList<>(); 
    ArrayList<Integer> ekdum_final_order_names = new ArrayList<>(); 
    Intent intent = getIntent(); 

    public ArrayList<Integer> intArray_id_selected; 
    public ArrayList<Integer> intArray_no; 
    Map<Integer ,String> linkedHashMap = new LinkedHashMap<>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_checkout); 

     intArray_no = (ArrayList<Integer>) intent.getSerializableExtra("int_array_no"); 
     intArray_id_selected = (ArrayList<Integer>) intent.getSerializableExtra("int_array_id"); 
     Toast.makeText(getBaseContext(),intArray_id_selected.get(0)+" "+ intArray_no.get(0),Toast.LENGTH_SHORT).show(); 
    } 

Dies ist die Klasse, die die Arraylisten von Antoher Klasse mit Absicht erhält. Ich erhalte eine unkontrollierte Guss Warnung: "Unchecked cast: 'java.io.Serializable' to 'java.util.ArrayList<android.app.Fragment>'" and due to this i get java null pointer exception. Diese iis die logcat:Deaktiviert Cast-Fehler beim Übergeben einer Arraylist von einer Aktivität an eine andere mit Absicht

Verursacht durch: java.lang.NullPointerException: Versuch virtuellen Methode ‚java.io.Serializable android.content.Intent.getSerializableExtra (Java aufzurufen .lang.String)‘auf eine null Objektreferenz bei com.example.gandhjee.pantry_order.Checkout.onCreate (Checkout.java:39)

Bitte helfen Sie mir meine Fehler zu finden. Jede Hilfe würde sehr geschätzt werden. Danke.

+1

Dieses Problem scheint unabhängig von der Guss Ausnahme zu sein . Insbesondere zeigt die NPE an, dass "intent" in den Zuordnungen von "intArray_no" und/oder "intArray_id_selected" null ist, so dass Sie offensichtlich nicht in der Lage sein werden, "getSerializableExtra (String)" auf etwas zu verwenden, das nicht funktioniert Ich existiere nicht. –

+0

poste den Code, mit dem du die Extras in den 'Intent' steckst. –

+0

Sie können 'getIntent' nicht außerhalb von' onCreate' platzieren –

Antwort

0

Sie sollten getIntent() innerhalb onCreate() anrufen. Wenn Absicht nach onCreate() verfügbar ist, ist Intent vor onCreate() vorhanden.

Versuchen Sie folgendes:

public class Checkout extends AppCompatActivity { 

    //ArrayList<String> stringArray = new ArrayList<>(); 
    ArrayList<Integer> ekdum_final_order_names = new ArrayList<>(); 

    public ArrayList<Integer> intArray_id_selected; 
    public ArrayList<Integer> intArray_no; 
    Map<Integer ,String> linkedHashMap = new LinkedHashMap<>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_checkout); 
     Intent intent = getIntent(); 
     intArray_no = (ArrayList<Integer>) intent.getSerializableExtra("int_array_no"); 
     intArray_id_selected = (ArrayList<Integer>) intent.getSerializableExtra("int_array_id"); 
     Toast.makeText(getBaseContext(),intArray_id_selected.get(0)+" "+ intArray_no.get(0),Toast.LENGTH_SHORT).show(); 
    } 

Wenn dieser Versuch nicht funktioniert Ihr Array zu erstellen und klonen es mit der Absicht, Daten wie:

intArray_no = new ArrayList<Integer>((Integer)intent.getSerializableExtra("int_array_no"); 
Verwandte Themen