簡體   English   中英

通過ArrayList傳遞Intent值

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

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