新手问题.我正在使用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 } };
谷歌在几个留言板上提出问题,但没有答案,所以它似乎是一个常见的新手问题.对某些人来说可能是痛苦的,但如果你能指出我正确的方向,我会很感激.谢谢.
由于所选项是Cursor,因此可以通过使用用于填充Spinner的原始数据库查询中的列索引调用getString来轻松获取值.
String spinnerString = null; Cursor cc = (Cursor)(yourSpinner.getSelectedItem()); if (cc != null) { spinnerString = cc.getString( cc.getColumnIndex("Drug")); }
当从数据库中填充Spinner时,此技术绝对有效.我没有尝试过资源数组.