我正在制作食物订单应用程序。我的主页上有一个名为ListView
的整页MenuActivity
,当我按下Button
时,它会转到CartActivity
页。
食物名称为food
,食物图像为imgID
,butPlus
butMinus
调整食物量,amount
保留金额每种食物的初始值为0。
我在addAmount
中有一个名为minusAmount
,MenuAcitivity
的方法会增加,减少金额。它由此类的Adapter
调用。
public static void addAmount(int position) {
amount[position] += 1;
}
转到CartActivity
,我用它来传递我的所有价值。
public void goToCart(MenuItem menuItem) {
Intent in = new Intent(MenuActivity.this, CartActivity.class);
in.putExtra("list", amount);
in.putExtra("imgID", imgID);
in.putExtra("nameList", food);
startActivity(in);
}
接收我在ArrayList
中创建新CartActivity
的值,以获取金额不为零的食物数据。
// add components to array lists
// addList, removeList are methods to add,remove in my new ArrayList created in this class
for (int i = 0; i < amountList.length; i++) {
if (amountList[i] != 0) {
if (!foodListFinal.contains(foodList[i]))
addList(amountList[i], foodList[i], imgID[i]);
} else if (amountList[i] == 0 && !foodListFinal.isEmpty()) {
if (foodListFinal.contains(foodList[i])) {
index = foodListFinal.indexOf(foodList[i]);
removeList(amountList[index], foodList[index], imgID[index]);
}
}
}
另外,我在addAmount
中有一个名为minusAmount
,CartAcitivity
的方法会增加,减少量,就像MenuActivity
一样。它由此类的适配器调用,与MenuActivity
不同。
public static void addAmount(int position) {
int newAmount = (amountListFinal.get(position)) + 1;
amountListFinal.set(position, newAmount);
}
public static void minusAmount(int position) {
int newAmount = (amountListFinal.get(position)) - 1;
amountListFinal.set(position, newAmount);
}
这是我的问题..
当我将amount
中的CartActivity
减少为0并且我回到MenuActivity
时,它正确地说0,但如果我再次切换到CartActivity
,应用程序会崩溃指出索引超出范围的错误。
请帮助我,或者有更好的方法来做到这一点请赐教。谢谢
答案 0 :(得分:0)
哪个数组导致了这个错误:&#34;说索引超出范围。&#34; ,foodList或amountList数组?它会帮助你
答案 1 :(得分:0)
我建议使用辅助存储来存储您的更改。也不建议将整个数组传递给另一个活动。使用任何数据库在其中插入更改,然后在购物车活动中检索所有数据。 这样,您就可以在各种对象中实现相同的数量状态。