获取填充Spinner的对象的id

时间:2018-05-11 11:04:00

标签: android sqlite android-sqlite

问题很简单,但我找不到任何解决方案。我有一个SQLite表,其中“id”和“name”为列。我需要在一个微调器中只显示名称(我做了),但是,我想获得仅在名称中在微调器中显示的对象的Id。有什么办法可以做到吗?

DatabaseHelper.java

@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE " + TABLE_NAME + " ( " + COL1 + "       INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COL2 + " TEXT);";

db.execSQL(createTable);
}
public boolean addData(String item) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL2, item);

    Log.d(Tag, "addData: Adding " + item + " to " + TABLE_NAME);
    long result = db.insert(TABLE_NAME, null, contentValues);

    if (result == -1) {
        return false;
    } else {

        return true;
    }
}

public List<String> getAllLabels(){
    List<String> labels = new ArrayList<String>();

    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_NAME;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            labels.add(cursor.getString(1));
        } while (cursor.moveToNext());
    }

    // closing connection
    cursor.close();
    db.close();

    // returning lables
    return labels;
}

mainactivity.java

public void AddData(String newEntry){
    boolean insertData = mDatabaseHelper.addData(newEntry);

    if (insertData){
        toastMessage("Data Succesfully entered");
    } else {
        toastMessage("Oops! Something went wrong");
    }

    loadSpinnerData();

}

    private void loadSpinnerData() {
    // database handler
    DatabaseHelper db = new DatabaseHelper(getApplicationContext());

    // Spinner Drop down elements
    List<String> lables = db.getAllLabels();

    // Creating adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, lables);

    // Drop down layout style - list view with radio button
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
}

activity_main.xml中

<Spinner
    android:id="@+id/spinner"
    android:layout_width="368dp"
    android:layout_height="29dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText" />

代码工作正常,我复制了我认为必要的东西。

0 个答案:

没有答案