【发布时间】:2011-12-31 06:28:40
【问题描述】:
我正在使用微调器让用户在创建和更新对话框中选择数据库关系 (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 的内容。
有没有比在数据库上使用字符串匹配进行另一个选择更好的方法来接收它?
【问题讨论】:
标签: android database cursor spinner