簡體   English   中英

使用意圖將數組列表從一個活動傳遞到另一個活動時,未經檢查的強制轉換錯誤

[英]Unchecked Cast error while passing an arraylist from one activity to another using intent

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();
    }

這是使用意圖從其他類接收數組列表的類。 我收到未經檢查的強制轉換警告: "Unchecked cast: 'java.io.Serializable' to 'java.util.ArrayList<android.app.Fragment>'" and due to this i get java null pointer exception.的強制轉換"Unchecked cast: 'java.io.Serializable' to 'java.util.ArrayList<android.app.Fragment>'" and due to this i get java null pointer exception. 這是logcat:

原因:java.lang.NullPointerException:嘗試在com.example.gandhjee.pantry_order.Checkout上的空對象引用上調用虛擬方法'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' .onCreate(Checkout.java:39)

請幫助我找到我的錯誤。 任何幫助將不勝感激。 謝謝。

您應該在onCreate()調用getIntent() onCreate() 由於Intent在onCreate()之后可用,因此在onCreate()之前存在Intent

嘗試這個:

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();
    }

如果這不起作用,請嘗試創建您的數組並使用意圖數據將其克隆為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM