can you have a layout with an imageview and textview for a row in a SimpleCursorAdapter with a listview?
this would be the lay
To expand on the answer from @Francesco Vadicamo, this is a fuctions that is part of a larger activity. I split it off because I needed to call it from multiple areas of the code. databaseHandler and listView are defined as a class variables and initialized in onCreat().
private void updateListView() {
// Get a Cursor with the current contents of the database.
final Cursor cursor = databaseHandler.getCursor();
// The last argument is 0 because no special behavior is required.
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.listview,
cursor,
new String[] { databaseHandler.ICON, databaseHandler.BOWLER_TXT },
new int[] { R.id.icon, R.id.bowler_txt },
0);
// Override the handling of R.id.icon to load an image instead of a string.
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (view.getId() == R.id.imageview) {
// Get the byte array from the database.
byte[] iconByteArray = cursor.getBlob(columnIndex);
// Convert the byte array to a Bitmap beginning at the first byte and ending at the last.
Bitmap iconBitmap = BitmapFactory.decodeByteArray(iconByteArray, 0, iconByteArray.length);
// Set the bitmap.
ImageView iconImageView = (ImageView) view;
iconImageView.setImageBitmap(iconBitmap);
return true;
} else { // Process the rest of the adapter with default settings.
return false;
}
}
});
// Update the ListView.
listView.setAdapter(adapter);
}