这是我正在尝试做的事情,并希望获得一些关于最佳方法的建议:
- 有一个包含单词的数据库,以及与该单词关联的图像文件的名称。
- 数据库中的单词将显示在列表视图中
- 选择单词时,新活动将开始在图像视图中显示单词和图像。
最好将术语存储在一个数组中,然后从这个数组中填充列表视图,然后从数据库 onitemclick 中提取?或者可以用数据库中的术语填充列表视图吗?
如果文件名存储在db中,android是否能够显示图像?
实现您要查找的内容的最佳方法是将术语和图像路径存储在数据库中,然后使用该路径从您放入的任何位置获取图像。
图像可以存储在数据库中,但普遍的共识是,最好将图像存储在数据库之外,并将该图像的路径存储在数据库中。
然后,您的数据库可以像三列一样简单...“_id”、“term”和“term_image”。
您可以执行一个简单的查询来一次获取所有信息(因此只查询一次数据库)。
然后使用该查询返回的光标填充您的术语列表,并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
}