0

これは、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 バイトの割り当てでメモリ不足」が原因で解凍できます。(上記のコードを変更せずに使用しようとすると、このエラーが発生します。)

4

1 に答える 1