当前位置:  开发笔记 > 数据库 > 正文

Android如何从数据驱动的微调器中获取所选项目

如何解决《Android如何从数据驱动的微调器中获取所选项目》经验,为你挑选了1个好方法。

新手问题.我正在使用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          
        }       
};

谷歌在几个留言板上提出问题,但没有答案,所以它似乎是一个常见的新手问题.对某些人来说可能是痛苦的,但如果你能指出我正确的方向,我会很感激.谢谢.



1> cdonner..:

由于所选项是Cursor,因此可以通过使用用于填充Spinner的原始数据库查询中的列索引调用getString来轻松获取值.

String spinnerString = null;
Cursor cc = (Cursor)(yourSpinner.getSelectedItem());
if (cc != null) {
    spinnerString = cc.getString(
        cc.getColumnIndex("Drug"));
}

当从数据库中填充Spinner时,此技术绝对有效.我没有尝试过资源数组.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有