したがって、4 つの列を持つ apps という名前のテーブルと、drawable を byte[] に変換し、列 "App_icon" に blob として格納する App_icon という名前の列があります。表示されているように、テーブルからフィールドを取得するリストビューがあります。ブロブを画像に変換して、左隅に画像を表示する必要もあります。データベースからテキスト データを取得して表示するために使用するコードは次のとおりです。
mySQLiteAdapter.open();
String[] arrayColumns = new String[] { Dbhelper.KEY_PKG,
Dbhelper.KEY_APP, };
int[] arrayViewIDs = new int[] { R.id.appname, R.id.pkgname };
cursor = mySQLiteAdapter.getAllFolders();
adapter = new SimpleCursorAdapter(
getActivity().getApplicationContext(), R.layout.listview_items,
cursor, arrayColumns, arrayViewIDs);
lv.setAdapter(adapter);
mySQLiteAdapter.close();
KEY_PKG と KEY_APP は、textview に表示される他のテーブル名 (appname と pkgname) です。画像をそれぞれのフィールドにバインドする方法について、誰かがサンプル コードを提供できますか? よろしく、ビジャイ
編集:すべての行から「App_icon」列の値のみを取得して配列に格納する方法を誰かが投稿できる場合は? それは役に立ちます
編集2:以下は、画像を取得するために使用される方法です
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue (View view, Cursor cursor, int columnIndex){
if (view.getId() == R.id.app_icon) {
ImageView IV=(ImageView) view;
Bitmap icon;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
byte[] image = null;
Cursor images = mySQLiteAdapter.geticon();
int rows = images.getCount();
for(int i=1;i<=rows;i++){
image = mySQLiteAdapter.getIcon(i);
icon = BitmapFactory.decodeByteArray(image , 0, image .length, options);
Toast.makeText(getActivity(), "executes"+rows, Toast.LENGTH_SHORT).show();
IV.setImageBitmap(icon);
}
//IV.setBackgroundColor(Color.TRANSPARENT);
return true;
}
return false;
}
});