Отправить данные счетчика в базу данных - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь отправить данные в базу данных с помощью счетчика. Я инициализирую базу данных следующим образом: SPINNER + " TYPE ";

И в методе вставки данных я обозначаю ее как Type spinner, но эта строка выдает ошибку * 1005.*

что мне поставить вместо 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;
        }

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Вы пытаетесь сохранить объект вращения в базе данных, что, конечно, не удается.Измените тип данных столбца 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.

0 голосов
/ 22 сентября 2019

попробуйте это:

 int spinnerPosition = spinner.getSelectedItemPosition();

 public boolean insertData(String fname, String lname, String pnumber, String email, String nic, int spinnerPosition ) {
            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, spinnerPosition );

            long result = db.insert(DB_TABLE, null, contentValues);
            return result != -1;
        }

и установите spinner тип в вашей таблице на INTEGER.

...