新手问题。我正在使用SimleCursorAdapter从SQLite表填充微调器,如Android开发文档中所示:
Spinner list=(Spinner)findViewById(R.id.cboModel);
SimpleCursorAdapter ModelAdapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, model,
new String[] {"Drug"},
new int[] {android.R.id.text1});
ModelAdapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
list.setAdapter(ModelAdapter);
list.setOnItemSelectedListener(onModelSelect);
我已经设置了一个监听器,但是我无法弄清楚如何获取所选的项目文本,它会拉出SQLiteCursor,而不是微调器中的实际文本。
private AdapterView.OnItemSelectedListener
onModelSelect= new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?>
parent, View view, int position, long id) {
ModelName = parent.getSelectedItem().toString();
android.util.Log.w("OnItemSelect.cboModel", ModelName);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
};
谷歌在几个留言板上提出问题,但没有答案,所以这似乎是一个常见的新手问题。对某些人来说可能是痛苦的,但如果你能指出我正确的方向,我会很感激。谢谢。
答案 0 :(得分:18)
由于所选项目是Cursor,因此可以通过使用用于填充Spinner的原始数据库查询中的列索引调用getString来轻松获取值。
String spinnerString = null;
Cursor cc = (Cursor)(yourSpinner.getSelectedItem());
if (cc != null) {
spinnerString = cc.getString(
cc.getColumnIndex("Drug"));
}
当从数据库中填充Spinner时,此技术绝对有效。我没有用资源数组尝试过它。
答案 1 :(得分:0)
想出来......获取id,然后进行数据库查询:
String id_string = String.valueOf(id);
thismodel=Pkmodel.getById(id_string, dbModel);
ModelName=thismodel.getDrug();