これは、sqlite テーブルから * を選択して、4 つのテキストビューと 1 つのイメージビューを持つリストビューに表示するクラスの一部です。
データベースには次の列があります。
sqlite> select * from events;
_id title location date img_loc
---------- ---------- ---------- ---------- ---------------------------------------------------------------
1 office space today file:///storage/sdcard0/DCIM/OrangeClubPhotos/1370701231842.jpg
2 home street26 june null
3 wrjjfhwiru rkljfewlr 487598347 file:///storage/sdcard0/DCIM/OrangeClubPhotos/1370702333785.jpg
4 jojo jiji today file:///storage/sdcard0/DCIM/OrangeClubPhotos/1370702372846.jpg
5 office des camp right now null
6 bed no locatio right here null
7 home home nyc home June 8 file:///storage/sdcard0/DCIM/OrangeClubPhotos/1370714226736.jpg
そのため、img_loc 列には sdcard 上の写真の uri があります。
String[] from = new String[]{DbHandler.column_id, DbHandler.column_name, DbHandler.column_location, DbHandler.column_date, DbHandler.img_loc};
int[] to = new int[] {R.id.textView1, R.id.textView2, R.id.textView3, R.id.textView4, R.id.photoInDb};
SimpleCursorAdapter simpleCurs = new SimpleCursorAdapter(this, R.layout.listviewfinal, c, from, to);
listView.setAdapter(simpleCurs);
simpleCurs.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int i) {
return false;
}
});
ただし、ImageView を取得する方法がわからないため、このエラー「20155408 バイトの割り当てでメモリ不足」が原因で解凍できます。(上記のコードを変更せずに使用しようとすると、このエラーが発生します。)