新手问题。我正在使用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 从数据库中填充时,这种技术绝对有效。我还没有用资源数组尝试过。

10-04 23:45