0

データベースに依存するコンテンツのスピナーを作りたいのですが、それを行う方法はありますか?以前、文字列の値はコードで変更できないことを読んだので、他に方法があるかどうか疑問に思っていますか?

4

4 に答える 4

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);

また

それをバインドしListener、誰かがスピナーと対話するたびに、データベースに変更があるかどうかを確認します。

それが役に立てば幸い。

于 2012-07-23T07:40:55.413 に答える
1

Spinnerを使用して、のコンテンツを管理できますAdapter

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

于 2012-07-23T07:44:22.570 に答える
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));
                }
于 2012-07-23T07:48:05.947 に答える
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);        
于 2012-07-23T07:54:22.463 に答える