通过ArrayList传递Intent值

时间:2014-06-13 17:58:32

标签: java android android-intent intentservice

我在同一个项目中有一个android类和一个Java类。 我想把arraylist从android传递给java。

我能够传递数组,但不能传递arraylist。 有人可以告诉我这个吗?

Android:

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转换为数组,那么我可以获得值。

2 个答案:

答案 0 :(得分:0)

您需要在Intent中添加额外内容,例如:

intent.putStringArrayListExtra("stock", (ArrayList<String>) stock_list );

并像这样检索它:

ArrayList<String> stock_list = data.getStringArrayListExtra("stock");

答案 1 :(得分:0)

尝试使用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");
}