繁体   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