从数据库光标填充旋转器时,获取项目的项目



在我的Android应用程序中,我与旋转器的布局相关。我想做的是从第一个旋转器中给出选定的项目,填写第二个。

第一个旋转器是从光标(数据库查询的结果)中填充的:

Spinner combo1 = (Spinner) findViewById(R.id.combo1);
mDbH.open();
Cursor c1 = null;
c1 = mDbH.consulta4();
startManagingCursor(c1);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c1,new String[] {"nombre"},new int[] {android.R.id.text1});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
combo1.setAdapter(adapter);

这很好!问题出现在我的活动侦听器中:

combo1.setOnItemSelectedListener(new OnItemSelectedListener(){
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        String est = String.valueOf(combo1.getSelectedItem());
        int idEst = (int) id;
        Log.e("est",est);
        Log.e("idEst",""+idEst);
        mDbH.open();
        Cursor c = null;
        c = mDbH.consulta5(idEst,est);
        SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,c,new String[] {"nombre"},new int[] {android.R.id.text1});
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        combo1.setAdapter(adapter2);
    }
    public void onNothingSelected(AdapterView<?> arg0) {}
});

因为,在logcat中line log.e(" est",est);显示以下内容:

10-25 09:48:50.390: E/est(3462): android.database.sqlite.SQLiteCursor@40625638

当然,该值不在我的数据库中,第二个光标是空的,并且旋转器不会填充任何东西!因此,这是我的问题,当从数据库中填充时,如何获得旋转器的项目?我还尝试了:

String est = combo1.getSelectedItem().toString();

String est = parentView.getItemAtPosition(position).toString();

但是结果是一样的!难道我做错了什么?请帮助!

谢谢!

,因为您的Spinner使用SimpleCursorAdaptergetItemAtPosition&amp;getSelectedItem将返回Cursor参考。使用:

Cursor c=(Cursor) combo1.getSelectedItem();
String est=c.getString(c.getColumnIndex("nombre");

getItemAtPosition(position)

相同的作品

最新更新