【发布时间】:2017-11-23 06:17:19
【问题描述】:
我正在制作一个食品订购应用。我的主页上有一个完整的页面ListView,名为MenuActivity,当我按下它时,有一个Button,它会指向CartActivity页面。
我有数组 food 用于食物名称,imgID 用于食物图像,butPlus butMinus 用于调整食物量,amount 用于保持每种食物的初始值为 0。
我在MenuAcitivity 中有一个名为addAmount 和minusAmount 的方法,它会增加、减少数量。它由此类的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);
}
接收我在CartActivity 中创建的新ArrayList 的值,以获取数量不为零的食物数据。
// 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]);
}
}
}
另外,我在CartAcitivity 中有一个名为addAmount 和minusAmount 的方法,它会像MenuActivity 一样增加、减少数量。由与MenuActivity不同的该类的Adapter调用。
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);
}
这是我的问题..
当我将 CartActivity 中的 amount 减少到 0 并返回到 MenuActivity 时,它正确显示为 0,但如果我再次切换到 CartActivity,应用程序崩溃并显示索引超出范围的错误。
请帮我解决这个问题,或者有没有更好的方法来做到这一点,请赐教。谢谢你
【问题讨论】:
标签: java android android-intent