Как вставить выбранное значение из спиннера в SQLite? - PullRequest
0 голосов
/ 12 апреля 2019

Добрый день,

Как вставить выбранное значение из счетчика в базу данных SQLite? Я создал массив в strings.xml. Тогда в Activity.java этот код:

 spinner = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.Array2, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

Тогда это (также в Деятельности):

    Button AddHere;
    Spinner spinner;
    DataBase db;
    db = new DataBase(this);

    AddHere = (Button) findViewById(R.id.AddHere);

        AddHere.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String SpinnerEdit = spinner.getSelectedItem().toString();
                boolean isInserted = db.insert(SpinnerEdit);
                if (isInserted == true)
                    Toast.makeText(Activity.this, "Data Inserted", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(Activity.this, "Data NOT Inserted", Toast.LENGTH_LONG).show();
            }
        });

Затем в DBHelper.java:

public class DBHelper extends SQLiteOpenHelper {

public DBHelper(Context context) {
    super(context, "Testing.db" , null, 1); }

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("Create table Testing (Spinner text);");

}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL(" DROP TABLE IF EXISTS Testing");
    onCreate(db);
}
public boolean insert (String SpinnerEdit)
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put ("Category", SpinnerEdit);
    long ins = db.insert("Testing", null, contentValues);
    if (ins==-1) return false;
    else return true;
}}

Но «Данные НЕ вставлены». Где проблема и как ее исправить? Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 12 апреля 2019

Эта строка:

contentValues.put ("Category", SpinnerEdit);

устанавливает значение для столбца Category, но в вашей таблице такой столбец отсутствует.
В операторе создания вашей таблицы есть только 1 столбец с именем Spinner.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...