java.util.MissingFormatArgumentException:格式说明符:s

时间:2018-01-09 12:43:56

标签: java android android-sqlite

我正在尝试将数据添加到android中的SQLite数据库,但我收到错误,“java.util.MissingFormatArgumentException:Format specifier:s”。我试图找出问题,但我找不到它。

按钮OnClickListener将数据添加到数据库。

 addToCart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new Database(getBaseContext()).addToCart(new Order(
                    foodId,
                    foodItem.getName(),
                    quantity.getNumber(),
                    foodItem.getPrice(),
                    foodItem.getDiscount(),
                    foodItem.getImage()
            ));

            Toast.makeText(ItemDetailsActivity.this, "Item added to your basket.", Toast.LENGTH_SHORT).show();

        }
    });

添加方法

  public void addToCart(Order order){
    SQLiteDatabase db = getReadableDatabase();
    String query = String.format("INSERT INTO OrderDetails(Productid,ProductName,Quantity,Price,Discount,Image) VALUES('%s','%s','%s','%s','%s','%s');",
            order.getProductid(),
            order.getProductName(),
            order.getQuantity(),
            order.getPrice(),
            order.getDiscount());
    db.execSQL(query);
}

2 个答案:

答案 0 :(得分:2)

String query = String.format("INSERT INTO OrderDetails(Productid,ProductName,Quantity,Price,Discount,Image) VALUES('%s','%s','%s','%s','%s','%s');",
        order.getProductid(),
        order.getProductName(),
        order.getQuantity(),
        order.getPrice(),
        order.getDiscount());

您有六个%s格式占位符,但您只提供五个值。

答案 1 :(得分:1)

MissingFormatArgumentException

  

当有格式说明符时,抛出未经检查的异常   没有相应的参数或者参数索引是指一个   不存在的论点。

您没有为“图片”参数设置值