我在 SQLite 数据库中插入数据时遇到问题。当我单击“保存”按钮时,我没有在 SQLite 编辑器中看到数据。 这段代码有什么问题?
1) AddMedicine.java
private void AddData() {
btn3.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap queryValues = new HashMap();
queryValues.put("medicine", medicine.getText().toString());
queryValues.put("quantity", quantity.getText().toString());
queryValues.put("date", date.getText().toString());
queryValues.put("time", time.getText().toString());
boolean isInserted = myDb.insertData(queryValues);
if (isInserted = true) {
Toast.makeText(AddMedicine.this, "Data inserted", Toast.LENGTH_LONG).show();
Intent i = new Intent(AddMedicine.this, MainActivity.class);
startActivity(i);
// this.callHomeActivity(view);
} else
Toast.makeText(AddMedicine.this, "Data not inserted", Toast.LENGTH_LONG).show();
}
}
);
}
2) DatabaseHelper.java
public boolean insertData(String Name, String quantity, String Date, String Time) {
db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, Name);
contentValues.put(COL_3, quantity);
contentValues.put(COL_4, Date);
contentValues.put(COL_5, Time);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1) {
return false;
} else {
return true;
}
}
最佳答案
方法 insertData
需要 4 个参数才能工作,但您将 HashMap
作为唯一参数传递到此方法中。也许这是你的问题?
希望有帮助。
UPD
您有多种可能来改变这种情况。
第一种 - 使用 GreenRobo 建议的代码,或者您可以重写方法 insertData
以适合您的 HashMap
参数。例如:
public boolean insertData(Map<String> map) {
db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, map.get("name"));
contentValues.put(COL_3, map.get("quantity"));
contentValues.put(COL_4, map.get("date"));
contentValues.put(COL_5, map.get("time"));
long result = db.insert(TABLE_NAME, null, contentValues);
return (result != - 1);
}
关于java - SQLite 编辑器中没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261330/