2010-04-20 108 views
5

今天我已经为此搜索了一个awnser。这一切看起来很容易,但我从来没有得到它的工作。我想用我的光标填写一个微调。我一直在尝试使用SimpleCursorAdapter,因为很多网站都说我应该这样做,但我从来没有把它用到工作上。让我看看它有多容易:)从android中的光标填充微调器

感谢您的时间!

我的光标

Cursor cursor = db.query(DATABASE_TABLE_Clients, new String[] {"_id", "C_Name"}, null, null, null, null, "C_Name"); 

我的微调

(Spinner) findViewById(R.id.spnClients); 

我的代码

Cursor cursor_Names = SQLData.getClientNames(); 
startManagingCursor(cursor_Names); 

String[] columns = new String[] { "C_Name" }; 
int[] to = new int[] { R.id.txt_Address }; 

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_dropdown_item, cursor_Names, columns, to); 
Spinner spnClients = (Spinner) findViewById(R.id.spnClients); 
spnClients.setAdapter(mAdapter); 
+0

您能告诉我们完整的代码,尤其是您使用SimpleCursorAdapter吗? – 2010-04-20 12:28:15

+0

添加了代码。如何使用列和我不明白的东西。我已经测试了很多不同的值,但它只是一个空白的微调器,里面有单选按钮。 – Rickard 2010-04-20 12:33:47

回答

7

以下代码解决了我的问题。我失踪.setDropDownViewResource。之后,我用simple_spinner_dropdown_item所以我不必做我自己的布局。

Cursor cursor_Names = SQLData.getClientNames(); 
    startManagingCursor(cursor_Names); 

    String[] columns = new String[] { "C_Name" }; 
    int[] to = new int[] { android.R.id.text1 }; 

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor_Names, columns, to); 
    mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    Spinner spnClients = (Spinner) findViewById(R.id.spnClients); 
    spnClients.setAdapter(mAdapter); 
5

我没有看到你的代码的下拉列表中查看。例如:

mAdapter.setDropDownViewResource(R.layout.spinner_view_dropdown); 

当然,您需要在res/layout目录中有一个spinner_view_dropdown.xml文件。

0

我已经做到了

empresasSpinner = (Spinner) findViewById(R.id.empresasSpinner); 

    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this, 
        android.R.layout.simple_spinner_item, empresasAll.toArray(new EntidadObject[0]));     
      empresasSpinner.setAdapter(spinnerArrayAdapter); 

一个简单的DTO

public class EntidadObject { 
    private int id; 
    private String nombre; 
//GETTES and SETTERS 
}   

的部分DAO

public class EntidadDao { 
      //... 

     public List<EntidadObject> getEmpresas() { 
       Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM empresas", null); 
       List<EntidadObject> entidadObjects = new ArrayList<EntidadObject>(); 
       cursor.moveToFirst(); 
       do { 
        EntidadObject entidadObject = new EntidadObject(); 
        entidadObject.setId(cursor.getInt(0)); 
        entidadObject.setNombre(cursor.getString(1)); 

        entidadObjects.add(entidadObject); 
       } while (cursor.moveToNext()); 
       return entidadObjects; 
      } 
    } 

于是我可以赶上选择项目的ID与

EntidadObject eo = (EntidadObject)empresasSpinner.getSelectedItem(); 
       eo.getId();