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