我正在尝试从微调器向数据库发送数据,我像这样SPINNER + " TYPE ";
在插入数据方法中,我将其设置为Type spinner
,但此行给我一个错误contentValues.put(SPINNER, spinner);
我应该放在那里而不是put
public boolean insertData(String fname, String lname, String pnumber, String email, String nic, Type spinner) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(FNAME, fname);
contentValues.put(LNAME, lname);
contentValues.put(PNUMBER, pnumber);
contentValues.put(EMAIL, email);
contentValues.put(NIC, nic);
contentValues.put(SPINNER, spinner);
long result = db.insert(DB_TABLE, null, contentValues);
return result != -1;
}
答案 0 :(得分:1)
您试图将微调器对象保存在数据库中,这当然会失败。
将表中的列SPINNER
的数据类型更改为TEXT
:
...SPINNER + " TEXT";
还要在spinner
的定义中将参数String
的数据类型更改为insertData()
:
public boolean insertData(String fname, String lname, String pnumber, String email, String nic, String spinner)
调用insertData()
时,传递微调器的选定项目,而不是微调器本身:
insertData(....., yourSpinner.getSelectedItem().toString())
现在从设备上卸载应用程序以删除数据库并重新运行,以便为列SPINNER
使用正确的数据类型重新创建该应用程序。