将微调器数据发送到数据库

时间:2019-09-22 13:13:27

标签: android sqlite android-sqlite spinner android-spinner

我正在尝试从微调器向数据库发送数据,我像这样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;
        }

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使用正确的数据类型重新创建该应用程序。