2012-07-23 78 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)); 
       }