【问题标题】:Android how to get selected item from data driven spinnerAndroid如何从数据驱动的微调器中获取选定的项目
【发布时间】:2009-11-21 19:49:30
【问题描述】:

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

谷歌在几个留言板上出现了这个问题,但没有答案,所以这似乎是一个常见的新手问题。这对某些人来说可能很明显,但如果你能指出我正确的方向,我将不胜感激。谢谢。

【问题讨论】:

    标签: android sqlite spinner


    【解决方案1】:

    由于所选项目是一个游标,您可以通过使用原始数据库查询中用于填充 Spinner 的列的索引调用 getString 轻松获取该值。

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

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

    【讨论】:

    • 我尝试了您的代码,但出现错误:java.lang.ClassCastException: java.lang.String cannot be cast to android.database.Cursor
    【解决方案2】:

    想通了...获取 id,然后进行数据库查询:

    String id_string = String.valueOf(id);
    
    thismodel=Pkmodel.getById(id_string, dbModel);
    
    ModelName=thismodel.getDrug();          
    

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多