[英]Passing Intent value through ArrayList
我在同一項目中有一個android類和一個Java類。 我想將arraylist從android傳遞到java。
我可以傳遞數組,但不能傳遞arraylist。 有人可以告訴我這個嗎?
安卓:
Intent i1= new Intent(context, WriteExcel.class);
i1.putExtra("stock_list", arrTransfer);
context.startService(i1);
Java文件:
public void onStart(Intent intent, int startId) {
ArrayList<String> stock_list = (ArrayList<String>) intent.getExtras().get("stock_list");
}
在這里,在Java文件中,如果我將arrayList轉換為array,那么我可以獲得值。
您需要在Intent中添加一個額外的內容,例如:
intent.putStringArrayListExtra("stock", (ArrayList<String>) stock_list );
並像這樣檢索它:
ArrayList<String> stock_list = data.getStringArrayListExtra("stock");
嘗試putStringArrayListExtra()代替:
Intent i1= new Intent(context, WriteExcel.class);
i1.putStringArrayListExtra("stock_list", arrTransfer);
context.startService(i1);
當您調用startService(i1)時,android通過調用其onCreate()方法並將其傳遞給Intent來啟動活動WriteExcel(假設您已正確完成)。 因此,這是您應該處理Intent的地方。 您的onCreate()可能看起來像這樣:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
ArrayList<String> stock_list = intent.getStringArrayListExtra("stock_list");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.