私はListViewを使用してデータベースから結果を表示したいというアクティビティを持っています。表には、単語、説明、カテゴリの3つの列があります。アクティビティページでは、配列から読み込まれるカテゴリのリストがあります。私はそれを設定して、リスト(例えばCat1)上の項目をクリックすると、カーソルから返される結果はDB内のカテゴリCat1のすべての単語/説明になります。現在のところ、クリックするとそのカテゴリの名前が表示されたトーストが表示されます。OnItemClick後のListViewでのDBからのカーソル結果の表示
現在のところ、アクティビティは正しく実行されていません。私はウェブ上で読んだことがあり、どのように進むべきかわかりません。ここに私がこれまで持っていたコードがあります。誰かが私を助けることができれば、本当に感謝します。
public class Categories extends ListActivity { DataBaseHelper db = new DataBaseHelper(this); プライベートSQLiteDatabaseデータ。 int位置;
private ListView list;
private String[] categories = {
"C1", "C2", "C3", "C4",
"C5", "C6", "C7", "C8",
"C9", "C10", "C11", "C12"
};
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.cat_list);
list = (ListView)findViewById(R.id.cat_listing);
list.setAdapter(new ArrayAdapter<String>(this,
R.layout.categories, categories));
list.setTextFilterEnabled(true);
Cursor cursor = data.rawQuery("SELECT term, desc FROM words WHERE cat = '" + categories[position] + "'", null);
startManagingCursor(cursor);
String columns[] = new String[] { "term", "desc" };
int[] to = new int[] { R.id.cat_term, R.id.cat_desc };
SimpleCursorAdapter myAdapter = new SimpleCursorAdapter(this, R.layout.cat_result, cursor, columns, to);
this.setListAdapter(myAdapter);
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id){
CharSequence text = categories[position];
Toast toast = Toast.makeText(getApplicationContext(),
text, Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
Siddharth、 私のコードを見れば、それは私がすでに持っているものです。私は、このコードをエラーなく実行するのに問題があります。抜粋ではなく、ソース全体を投稿できますか?あなたはOnItemClickを使っていますか?ありがとう... – Devin
追加コードを追加しています。元の投稿を確認してください。 –
本当に申し訳ありませんが、ここで問題があります。私はCursorの準備とSimpleCursorAdapterの作成に何が関係しているのか理解しています。しかし、私は新しい活動を望んでいません。誰かがリスト内のアイテムをクリックすると、DBに照会し、クリックされたカテゴリのすべての単語のリストを返します。 投稿したコードを試しましたが、そのアクティビティを開くときに強制終了する必要があります(テストするカテゴリリストにもアクセスできません)。上記のコードは、次の行でSimpleCursorAdapter宣言とsetListAdapter呼び出しを削除すると動作します。 – Devin