0

の助けを借りてに保存されdatabaseているセッションのリストを表示しようとしています。どうしてそうすることができないのかSpinnerSimpleCursorAdapter

Cursor cs=db.getAllSession();
String[] from=new String[]{"sess_name"};        
int[] to=new int[]{android.R.id.text1};
SimpleCursorAdapter adapter= new SimpleCursorAdapter(this,  android.R.layout.simple_spinner_item, cs, from, to );
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
sp.setAdapter(adapter);

セッションテーブルには2つのフィールドidとがありsess_nameます。不正な引数の例外が発生しています。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.world.shaman/com.world.shaman.Test}: java.lang.IllegalArgumentException: column '_id' does not exist

私は問題をわからない

ここに画像の説明を入力してください

4

2 に答える 2

1

biegleux が言ったように、カーソル_idにはスピナーが機能するための列が必要です。

これは、必ずしも DB の列名を変更する必要があるという意味ではありません。これが推奨される方法ですが、クエリを変更して目的の結果を得ることもできます。

SELECT id AS _id, sess_name FROM your_table
于 2012-08-12T15:25:55.423 に答える
0

の代わりにテーブル_idの列の名前として使用します。sessionid

CursorAdapter ドキュメントから:

Cursor には「_id」という名前の列が含まれている必要があります。含まれていない場合、このクラスは機能しません。

于 2012-08-12T12:14:09.740 に答える