나는 android studio를 처음 사용하고 있으며 주문을하고 물건을 장바구니에 추가 한 다음 나중에 계정 페이지에서 세부 정보를 확인할 수있는 앱을 개발하고 있습니다. 카트를 클릭하거나 장바구니에 항목을 추가 할 때, 응용 프로그램은 추락이 나타납니다 :해결 방법 : java.util.UnknownFormatConversionException : Conversion = '' '?
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sakaaz.sakaaz, PID: 30731
java.util.UnknownFormatConversionException: Conversion = '''
at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2730)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2759)
at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2591)
at java.util.Formatter.parse(Formatter.java:2524)
at java.util.Formatter.format(Formatter.java:2472)
at java.util.Formatter.format(Formatter.java:2426)
at java.lang.String.format(String.java:2626)
at edmt.dev.androidsakaaz.Database.Database.addToCart(Database.java:55)
at edmt.dev.androidsakaaz.MakeupDetail$1.onClick(MakeupDetail.java:59)
at android.view.View.performClick(View.java:6257)
at android.view.View$PerformClick.run(View.java:23705)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6836)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
내가 무엇이 잘못되었는지 모르겠어요. 여기 내 데이터베이스 클래스입니다 :
public class Database extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "sakaazDB.db";
private static final int DB_VER=1;
public Database(Context context) {
super(context, DATABASE_NAME, null , DB_VER);
}
public List<Order> getCarts()
{
SQLiteDatabase db=getReadableDatabase();
SQLiteQueryBuilder qb= new SQLiteQueryBuilder();
String[] sqlSelect={"ProductName", "ProductId", "Quantity", "Price", "Discount"};
String sqlTable="OrderDetail";
qb.setTables(sqlTable);
Cursor c = qb.query(db,sqlSelect,null,null,null,null,null);
final List<Order> result = new ArrayList<>();
if (c.moveToFirst())
{
do{
result.add(new Order(c.getString(c.getColumnIndex("ProductId")),
c.getString(c.getColumnIndex("ProductName")),
c.getString(c.getColumnIndex("Quantity")),
c.getString(c.getColumnIndex("Price")),
c.getString(c.getColumnIndex("Discount"))
));
}while (c.moveToNext());
}
return result;
}
public void addToCart (Order order)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("INSERT INTO OrderDetail(ProductId, ProductName, Quantity, Price, Discount) VALUES ('s%','s%','s%','s%','s%');",
order.getProductId(),
order.getProductName(),
order.getQuantity(),
order.getPrice(),
order.getDiscount());
db.execSQL(query);
}
public void cleanCart()
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("DELETE FROM OrderDetail");
db.execSQL(query);
}
}
도와주세요!
가능한 복제 (https://stackoverflow.com/questions/16713396/unknownformatconversionexception-is-caused-by-symbol-in- [(자), UnknownFormatConversionException가 인 String.format()에서 기호 '%'로 인한] 문자열 형식) –