4

初心者の質問です。Android dev docs に示されているように、SimleCursorAdapter を使用して SQLite テーブルからスピナーを設定しています。

Spinner list=(Spinner)findViewById(R.id.cboModel);        
SimpleCursorAdapter ModelAdapter = new SimpleCursorAdapter(this,
   android.R.layout.simple_spinner_item, model,
   new String[] {"Drug"},       
   new int[] {android.R.id.text1});
ModelAdapter.setDropDownViewResource(
        android.R.layout.simple_spinner_dropdown_item);
list.setAdapter(ModelAdapter);
list.setOnItemSelectedListener(onModelSelect);

リスナーを設定しましたが、選択した項目のテキストを取得する方法がわかりません。スピナーの実際のテキストではなく、SQLiteCursor をプルアップします。

private AdapterView.OnItemSelectedListener 
    onModelSelect= new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> 
            parent, View view, int position, long id) {
            ModelName = parent.getSelectedItem().toString(); 
            android.util.Log.w("OnItemSelect.cboModel", ModelName);     
        }
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub          
        }       
};

Google はいくつかのメッセージ ボードでこの質問を取り上げていますが、回答がありません。したがって、これは一般的な初心者の質問のようです。一部の人にとっては痛々しいほど明白かもしれませんが、正しい方向に私を向けることができれば幸いです. ありがとうございました。

4

2 に答える 2

18

選択された項目は Cursor であるため、Spinner の設定に使用した元のデータベース クエリの列のインデックスを使用して getString を呼び出すことで、値を簡単に取得できます。

String spinnerString = null;
Cursor cc = (Cursor)(yourSpinner.getSelectedItem());
if (cc != null) {
    spinnerString = cc.getString(
        cc.getColumnIndex("Drug"));
}

この手法は、Spinner がデータベースから設定されている場合に確実に機能します。リソース配列で試したことはありません。

于 2010-07-03T02:48:14.417 に答える
0

それを考え出した... IDを取得してから、DBクエリを作成します:

String id_string = String.valueOf(id);

thismodel=Pkmodel.getById(id_string, dbModel);

ModelName=thismodel.getDrug();          
于 2009-11-21T20:31:07.883 に答える