java.util.MissingFormatArgumentException : Format specifier: s

标签 java android android-sqlite

我正在尝试将数据添加到 android 中的 SQLite 数据库,但出现错误“java.util.MissingFormatArgumentException:格式说明符: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);
}

最佳答案

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 格式占位符,但您只提供了五个值。

关于java.util.MissingFormatArgumentException : Format specifier: s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168503/

相关文章:

java - 通过 UDP 从 Android 向外部传感器发送数据

android - 无法访问 PopupWindow 布局中的资源,对象引用为空

android - 缩放时图像与其他图像重叠

java - 在运行通用图像加载器时添加 imageUrl?

java - DocumentBuilderFactory 获取可用功能吗?

java - 在 SQLiteOpenHelper onCreate 方法中显示 ProgressDialog

android - 从具有多个相关条目的多个SQL表中检索数据

database - 我是否使用 sqlite 破坏了我的磁盘?

java - Singleton 类,在不同的 Activity 中有效地使用资源来显示 toast

android - QLabel透明背景