2010-04-20 74 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();