[英]Print ArrayList from another Activity using ListView
I'm trying to print a string from ArrayList
in my another Activity using ListView. 我正在尝试使用ListView从另一个活动中的ArrayList
打印字符串。 I passed a key and values in my intent variable. 我在意图变量中传递了键和值。 Using this. 使用这个。
MainActivity 主要活动
ArrayList<String> arrayList = new ArrayList<String>();
Intent intent = new Intent(getApplicationContext(), ViewCart.class);
mealOneIncrement++;
quantityOne.setText(Integer.toString(mealOneIncrement));
mealOneCost = mealOneIncrement * mealOnePrice;
price.setText(Double.toString(mealOneCost));
String mealOneSummayName = name.toString();
String mealOneSummaryDescription = description.toString();
String mealOneSummaryQuantity = String.valueOf(mealOneIncrement);
String mealOneSummaryCost = String.valueOf(mealOneCost);
arrayList.add(mealOneSummayName);
arrayList.add(mealOneSummaryDescription);
arrayList.add(mealOneSummaryQuantity);
arrayList.add(mealOneSummaryCost);
intent.putExtra("data", arrayList);
As you can see here I passed arrayList
variable as value for able to passed this from another Activity. 如您所见,我将arrayList
变量作为值传递给了其他活动。
SecondActivity SecondActivity
ListView listView = (ListView) findViewById(R.id.listView);
String[] mealSummary = {};
ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mealSummary);
Bundle bundle = getIntent().getExtras();
String data = bundle.getString("data");
listView.setAdapter(adapter);
I'm little bit confuse in this part String data = bundle.getString("data");
我在这部分有点困惑String data = bundle.getString("data");
I'm not sure if I'm passing a correct variable to my ListView
so I can able to show the arrayList
variable in my ListView
. 我不确定是否要向ListView
传递正确的变量,以便能够在ListView
显示arrayList
变量。 Am I doing it wrong? 我做错了吗? Any help would appreciated :) 任何帮助将不胜感激:)
There are some problems with your code: 您的代码存在一些问题:
intent.putExtra("data", arrayList);
you are putting inside the bundle an arrayList of String, but then 您将捆绑软件放入String的arrayList,但是然后
String data = bundle.getString("data");
you are getting just a String. 您得到的只是一个字符串。 You need to use bundle.getStringArrayList("data")
. 您需要使用bundle.getStringArrayList("data")
。
ArrayList<String> data = bundle.getStringArrayList("data")
Also (not related to your problem), I recommend to use 另外(与您的问题无关),我建议使用
Intent intent = new Intent(this, ViewCart.class);
instead of 代替
Intent intent = new Intent(getApplicationContext(), ViewCart.class);
Pass Arraylist as putStringArrayListExtra, 将Arraylist传递为putStringArrayListExtra,
Intent intent = new Intent(this, ViewCart.class);
intent.putStringArrayListExtra("data", arrayList);
startActivity(intent);
Get your ArrayList using getStringArrayListExtra, 使用getStringArrayListExtra获取您的ArrayList,
arrayList = getIntent().getStringArrayListExtra("data");
You could modify this a bit. 您可以对此进行一些修改。
In your secondActivity get the data like 在您的secondActivity中获取如下数据
ArrayList<String> data = getIntent().getSerializableExtra("data");
Now you got your data in an arrayList. 现在,您将数据保存在arrayList中。 If you wish to add this data to mealSummary then use, 如果您想将此数据添加到餐摘要中,请使用,
mealSummary = (String[]) data.toArray();
Don't forget to call adapter.notifyDataSetChanged()
不要忘记调用adapter.notifyDataSetChanged()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.