This question already has answers here:
What's the best way to share data between activities?
                                
                                    (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