2012-07-23 86 views
0

我想做一個微調器,其內容取決於數據庫,有沒有辦法做到這一點?之前,我讀過字符串值不能被代碼更改,所以現在我想知道是否有其他方式?動態微調器

+0

你能更具體嗎? – Michal 2012-07-23 07:24:25

+0

您必須創建一個適配器。 – cosmincalistru 2012-07-23 07:27:52

+0

我想做一個微調,例如像管理員,編輯,工作人員角色的微調。諸如管理員,編輯和工作人員的數據來自sqlite,所以當我將新角色插入到sqlite中時,例如anoymous,我將在下次加載微調時插入新角色 – 2012-07-24 02:08:36

回答

0

我發現ORMLite在Android中數據庫的工作是非常有用的。你可以在你的代碼中使用這樣的東西:

Dao<YourTable, YourTableKeyType> tableDao = DaoManager.createDao(connectionSource, 
        YourTable.class); 

List<YourTable> itemsList = tableDao.queryForAll(); 

tableStr = new String[tableList.size()]; 
int i = 0; 
for (YourTable item : itemsList) { 
    tableStr[i++] = item.getNom(); 
} 
spinner = (Spinner) findViewById(R.id.spinner_id); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    R.layout.spinner_layout, tableStr); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 
spinner.setAdapter(adapter);   
2

無論是創建一個Adapter

spinner = (Spinner)this.findViewById(R.id.spr); 
adapter = ArrayAdapter.createFromResource(
     this, R.array.some_array, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

OR

綁定它Listener,每次與人互動微調,檢查是否有數據庫中的變化。

希望它有幫助。

1

您可以使用Adapter來管理Spinner的內容。

例如用ArrayAdapter

Spinner spinner = new Spinner(this); 
ArrayAdapter<CharSequence> adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

// Then add all the values you want... 
adapter.add("Item 1"); 
adapter.add("Item 2"); 

查找文件位置:http://developer.android.com/guide/topics/ui/controls/spinner.html

1
/Bind values to spinner through an array 
String[] items = new String[] {"Karnataka", "Orissa", "Andhrapradesh"}; 
Spinner spinner; 

spinner = (Spinner)this.findViewById(R.id.spnState); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, items); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 

//Bind values to spinner through databases 

//--Write a query to get all the values in a column in a table 
public Cursor columnValues() throws SQLException { 
SQLiteDatabase db; 
     return db.query(TABLE_NAME, new String[] { ID, KEY_NAME }, null, null, null, null, KEY_NAME + " ASC", null); 
    } 
//--then in activity under button click write, 
    Cursor cursor = db.columnValues(); 
     startManagingCursor(cursor); 

     // create an array to specify which fields we want to display 
     String[] from = new String[] { DBAdapter.KEY_NAME }; 
     // create an array of the display item we want to bind our data to 
     int[] to = new int[] { android.R.id.text1 }; 

     Spinner spinner = (Spinner) this.findViewById(R.id.spinnerID); 
     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       android.R.layout.simple_spinner_item, cursor, from, to); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 

//How to get selected values from spinner 

       Spinner spinner = (Spinner) findViewById(R.id.spinnerID); 
       String selectedItem; 
       Cursor cc = (Cursor)(spinner.getSelectedItem()); 
       if (cc != null) { 
        selectedItem = cc.getString(cc.getColumnIndex(db.KEY_NAME)); 
       }