探しているものを実現するための最良の方法は、用語と画像パスをDBに保存し、そのパスを使用して、配置した場所から画像をフェッチすることです。
画像はDBに保存できますが、一般的なコンセンサスは、画像をDBの外部に保存し、その画像へのパスをDBに保存することをお勧めします。
DBは、「_ id」、「term」、「term_image」の3つの列のように単純にすることができます。
簡単なクエリを実行して、すべての情報を一度にフェッチできます(したがって、DBにクエリを実行するのは1回だけです)。
次に、そのクエリによって返されたカーソルを使用して用語のリストにデータを入力しonListItemClick
、新しいアクティビティを開始して、リストの用語と同じレコードにあるリストのパスを使用して、関連付けられた画像を表示します。
データをフェッチするためのクエリ:
public Cursor fetchAllTerms() {
return mDb.query(TERMS_TABLE, new String[] { "_id", "term", "term_img" }, null, null, null, null, null);
}
あなたのリストでそれを使用する:
mTermCursor = mDbHelper.fetchAllTerms();
getActivity().startManagingCursor(mTermCursor);
String[] from = new String[] { YourDBClass.term };
int[] to = new int[] { android.R.id.Text1 };
SimpleCursorAdapter ranks = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_1, mRankCursor, from, to);
setListAdapter(ranks);
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
String imagePath = mTermCursor.getString(mTermCursor.getColumnIndexOrThrow("term");
// code to start your new activity and put the image path into the bundle to be passed
}