This question already has answers here:
What's the best way to share data between activities?
(14个回答)
2年前关闭。
我正在制作食品订单应用程序。我的主页上有一个名为
我有用于食物名称的数组
我有一个叫做
转到
接收我在
另外,我有一种称为
这是我的问题。
当我将
请对此提供帮助,或者有其他更好的方法可以帮助我。谢谢
(14个回答)
2年前关闭。
我正在制作食品订单应用程序。我的主页上有一个名为
ListView
的整页MenuActivity
,当我按它时会有一个Button
,它将指向CartActivity
页面。我有用于食物名称的数组
food
,用于食物图像的imgID
,用于调整食物量的butPlus
butMinus
以及用于将每种食物量的初始值保持为0的amount
数组。我有一个叫做
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
,则应用程序崩溃,并出现错误,指出索引越界。请对此提供帮助,或者有其他更好的方法可以帮助我。谢谢
最佳答案
对于哪个数组导致此错误:“说索引超出范围”。 ,foodList或amountList数组?会帮你的
关于java - 在 Activity 之间以阵列方式同步数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47448793/
10-09 20:00