我有一个来自 SQLite 数据库的现有 ListView。我希望该用户可以将图片从他们的画廊添加到列表视图。这些图片以“*.jpg”的形式保存在内部存储中,其中 * 是创建新帐户时的特定行 ID。
示例:在 SQLite 数据库中创建一个新条目,表 (id) 编号为 8。然后,如果用户选择了图片,则该图片将保存在内部存储中,名称为“8.jpg”
我的问题是如何在 listView 中的确切位置显示该图片...到目前为止,这是我的代码:
编辑:(更新代码)
private void fillData() {
mNotesCursor = helper.fetchAllData();
String[] from = new String[] { MySQLiteHelper.NAME, MySQLiteHelper.PASSWORD,
MySQLiteHelper.CB_GETREIDE, MySQLiteHelper.CB_FASTENTAG,
MySQLiteHelper.CB_WOCHENPLAN, MySQLiteHelper.CB_DIET,
MySQLiteHelper.SP_ART, MySQLiteHelper.PHOTO };
int[] to = new int[] { R.id.label, R.id.gewicht,
R.id.getreide,
R.id.fastentag,
R.id.wochenplan,
R.id.diet,
R.id.spinner,
R.id.imageButton1};
adapter = new SimpleCursorAdapter(getActivity(),
R.layout.hundeliste_item, mNotesCursor, from, to, 0);
mMyListView.setAdapter(adapter);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder(){
public boolean setViewValue(View view, Cursor cursor, int columnIndex){
final int id = mNotesCursor.getInt(mNotesCursor.getColumnIndex(MySQLiteHelper.UID));
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.hundeliste_item, null);
File mediaStorageDir = new File(Environment.getExternalStorageDirectory()
+ "/Android/data/"
+ getActivity().getPackageName()
+ "/Files");
Uri uri = Uri.parse(mediaStorageDir.getPath() + File.separator + id +".jpg");
Log.v("TEST COMPARISON", "columnIndex=" + columnIndex + " ID = " + id + " URI = " + uri);
// I think here comes my mistake, but I don't know another solution
if(columnIndex == cursor.getColumnIndex(MySQLiteHelper.PHOTO)) {
((ImageView)view.findViewById(R.id.imageView1)).setImageDrawable(Drawable.createFromPath(uri.toString()));
Log.v("Test", "... this Log don't show up, cause columnIndex =/= id");
return true;
}
return false;
}
});
欢迎任何帮助。对此感到疯狂..在这里坐了一个星期没有解决方案
编辑:(日志输出)
03-11 12:55:36.784: V/TEST COMPARISON(22456): columnIndex=1 ID = 1 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/1.jpg
03-11 12:55:36.794: V/TEST COMPARISON(22456): columnIndex=2 ID = 1 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/1.jpg
03-11 12:55:36.804: V/TEST COMPARISON(22456): columnIndex=7 ID = 1 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/1.jpg
03-11 12:55:36.814: V/TEST COMPARISON(22456): columnIndex=1 ID = 2 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/2.jpg
03-11 12:55:36.824: V/TEST COMPARISON(22456): columnIndex=2 ID = 2 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/2.jpg
03-11 12:55:36.834: V/TEST COMPARISON(22456): columnIndex=7 ID = 2 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/2.jpg
03-11 12:55:36.844: V/TEST COMPARISON(22456): columnIndex=1 ID = 3 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/3.jpg
03-11 12:55:36.844: V/TEST COMPARISON(22456): columnIndex=2 ID = 3 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/3.jpg
03-11 12:55:36.854: V/TEST COMPARISON(22456): columnIndex=7 ID = 3 URI = /storage/emulated/0/Android/data/com.example.android.navigationdrawerexample/Files/3.jpg