sqliteへのスピナーロードデータがあります
データベースにフィールドIDとフィールド名があります。
private void loadSpinnerDataHama() {
// database handler
DatabaseSpinner db = new DatabaseSpinner(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
spin2.setAdapter(dataAdapter);
}
public List<String> getAllLabels(){
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_LABELS;
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;
}
結果は
USA->値は「USA」です
フランス->値は「フランス」
コードlabels.add(cursor.getString(1));
をに変更するとlabels.add(cursor.getString(0));
結果は
1->値は「1」
2->値は「2」です
試してみましint position2 = spin2.getSelectedItemPosition()+1;
たが、値はデータベースのIDではなく、スピナーのID/位置です。
スピナーにフィールド名を表示する方法。しかし、値は名前のIDです
例:スピナーディスプレイ:
USA->値は「1」です
フランス->値は「2」
BR
アレックス