我在同一个项目中有一个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转换为数组,那么我可以获得值。
答案 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");
}