[英]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.