我所拥有的是三个活动,第一个叫做penddingorders,我在其中创建了一个数组列表,我就像这样添加字符串:
ArrayList prodlist=new ArrayList();
for(int z=0;z<=mylist.size();z++){
if(id.equals(mylist.get(arg2).getOrderId()))
{
product=mylist.get(arg2).getProductName();
quantity=mylist.get(arg2).getQuantity();
unit=mylist.get(arg2).getUnit();
price=mylist.get(arg2).getPrice();
totalprice=mylist.get(arg2).getTotalPrice();
totalpriceAfterDiscount=mylist.get(arg2).getPriceAfterDiscount();
note=mylist.get(arg2).getNote();
prodlist.add(product);
prodlist.add(quantity);
prodlist.add(unit);
prodlist.add(totalprice);
prodlist.add(price);
prodlist.add(totalpriceAfterDiscount);
prodlist.add(note);
arg2++;
}
我已经在logcat中打印它并且显示正确:
Log.e("product list",prodlist+"");
并且我已经将它从第一个活动发送到第三个活动,像虽然我应该通过第二个活动才能进入第三个活动:
Intent intent = new Intent(PenddingOrders.this, ProductInfoDetails.class);
intent.putStringArrayListExtra("prodlist", prodlist);
startActivity(intent);
在第三个活动中,我通过以下代码获取数组列表:
try{
prodlist = getIntent().getStringArrayListExtra("prodlist");
}
catch(Exception e){
e.printStackTrace();
}
Log.e("prodlist",prodlist+"");
但是在logcat中我得到null值..所以我做错了请帮忙??
答案 0 :(得分:0)
您可以使用getter setter设置属性,这样您就可以很好地管理您的价值。 并使其变得有意义。所以你可以使用它的Extras ArrayList进入下一个Activity。
进行操作答案 1 :(得分:0)
这是我对stackoverflow的回复,请检查并希望它有很多帮助:
答案 2 :(得分:0)
最好使用Android Application类来保存数据。 供参考link
public class MyApplication extends Application {
private ArrayList<String> list;
public void setValue(ArrayList<String> list) {
this.list = list;
}
public ArrayList<String> getValue() {
return list;
}
}
步骤-1 首先从您的活动
中设置值MyApplication globalVariable = (MyApplication) getApplicationContext();
globalVariable.setValue(prodlist)// Set your ArraList that you want to store
步骤-2- 检索其他活动中的值,如
MyApplication globalVariable = (MyApplication) getApplicationContext();
// Get ArrayList from global/application context
ArrayList<String> list = globalVariable.getValue();
并且不要忘记在Manifest.xml中注册
<application
android:name="YOUR_PACKAGE_NAME.MyApplication "
-----------------------