Я использую счетчик, чтобы позволить пользователю выбрать отношение базы данных (1: n) в диалоге создания и обновления.Заполнение счетчика курсором базы данных работает нормально:
//set up spinner
Spinner spinner = (Spinner) dialog.findViewById(R.id.field_task_fkbudget);
//set up cursor
budgetsData = new TBTsqlHelperBudgets(this);
SQLiteDatabase db = budgetsData.getReadableDatabase();
Cursor c2 = db.query(TBTsqlHelperBudgets.TABLE,null,null,null,null,null,null);
c2.moveToFirst();
// populate spiner
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c2, new String[] {TBTsqlHelperTasks.KEY_NAME}, new int[] {android.R.id.text1});
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter2);
spinner.setSelection(0);
Моя проблема сейчас заключается в сохранении выбора в базе данных.Я пытался использовать:
...
caller.updateTask(task_id, field_name.getText().toString(), s.getSelectedItemPosition());
...
, но это дает мне положение наборов данных внутри счетчика.Что мне нужно, так это содержимое поля BaseColumns._ID элемента курсора, выбранного в счетчике.
Есть ли лучший способ получить это, чем сделать еще один выбор с совпадением строк в базе данных?