代码之家  ›  专栏  ›  技术社区  ›  P595

Java语言util。MissingFormatArgumentException:格式说明符:s

  •  1
  • P595  · 技术社区  · 7 年前

    我试图在android中向SQLite数据库添加数据,但遇到错误,“java.util.MissingFormatArgumentException:格式说明符:s”。我试图找出这个问题,但找不到。

    单击Listener按钮将数据添加到数据库。

     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 回复  |  直到 7 年前
        1
  •  2
  •   laalto    7 年前
    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 设置占位符格式,但您只提供了五个值。

        2
  •  1
  •   Alexandr Lihonosov    7 年前

    MissingFormatArgumentException

    当有格式说明符 没有相应的参数,或者如果参数索引引用 不存在的参数。

    您没有为“Image”参数设置值