Невозможно разделить строку на массив и сохранить объект массива в Android Java

Есть ли способ разбить строку на массив и зациклить ее на классе массива в Android Java? Ниже мой код, но он не может зацикливаться

Пример записи ScanResultProduct = "P001,7,1,7,P002,8,2,16";

              String ScanResultProduct[];
        ScannedProductList[] ScannedProductList;

        ScanResultProduct = UserScanResulted.split(",");
        int Length = ScanResultProduct.length;
        int LengthResult = Length / 4;
        ScannedProductList[] ScanResultProductList = new ScannedProductList[LengthResult];


        for (int i = 0, index = 0; index < ScannedProductList.length; index++) {
            ScanResultProductList[index] = new ScannedProductList(ScanResultProduct[i], ScanResultProduct[i + 1], ScanResultProduct[i + 2], ScanResultProduct[i + 3]);
            i += 4;
        }

Это класс ScanResultProductList.

      public class ScannedProductList {
    public String ProductID;
    public String ProductPrice;
    public String ProductQuantity;
    public String ProductTotalPrice;

    public ScannedProductList(String productID, String productPrice, String productQuantity, String productTotalPrice) {
        ProductID = productID;
        ProductPrice = productPrice;
        ProductQuantity = productQuantity;
        ProductTotalPrice = productTotalPrice;
    }

    public String getProductID() {
        return ProductID;
    }

    public String getProductPrice() {
        return ProductPrice;
    }

    public String getProductQuantity() {
        return ProductQuantity;
    }

    public String getProductTotalPrice() {
        return ProductTotalPrice;
    }

    public String Display(){
        return ProductID + "," + ProductPrice + "," + ProductQuantity +","+ ProductTotalPrice;
    }

    public void setProductID(String productID) {
        ProductID = productID;
    }

    public void setProductPrice(String productPrice) {
        ProductPrice = productPrice;
    }

    public void setProductQuantity(String productQuantity) {
        ProductQuantity = productQuantity;
    }

    public void setProductTotalPrice(String productTotalPrice) {
        ProductTotalPrice = productTotalPrice;
    }
}

Он не может зациклиться, и сообщение об ошибке

E/AndroidRuntime: НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.finalfypprojectapplication, PID: 14722java.lang.RuntimeException: невозможно запустить активность NullPointerException: попытка получить длину нулевого массива

1 ответ

Это исключение NullPointerException. Перед вызовом разделения вы должны проверить, соответствует ли ваша строка != nulll. После этого убедитесь, что ваш String[] не равен нулю, прежде чем вызывать метод длины. После этого, если бы я был на вашем месте, когда у меня есть String[], я построю свой объект в цикле For, используя ваши сеттеры.

Другие вопросы по тегам