Android : How to retrieve image data and display it as ListView

on Saturday, March 21, 2015


I am trying to retrieve my image data that has been converted from byte to bitmap.But instead of showing a picture, it is showed nothing. In the logcat, i can clearly saw my image data changed into bitmap.


Here`s my java code to save mydata



items Item= new items();
db.getWritableDatabase();
Item.setName(name.getText().toString());
Item.setCategory(SpCate.getSelectedItem().toString());
Item.setDetails(details.getText().toString());
Item.setImage(imageInByte);
db.addItemSpinner(new items());
// Save the Data in Database
MyDb entry= new MyDb(SellingItem.this);
entry.getWritableDatabase();
entry.addItemSpinner(Item);
entry.close();
Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show();
Log.d("name", Item.getName());
Log.d("category", Item.getCategory().toString());
Log.d("details", Item.getDetails());
Log.d("image", Item.getImage().toString());
Intent i=new Intent(SellingItem.this,SearchItem.class);
startActivity(i);


Here is my database to retrieve the data.



public List<items> getAllContacts() {
List<items> itemlist = new ArrayList<items>();
// Select All Query
String selectQuery = "SELECT * FROM PRODUCT ORDER BY name";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {

items item = new items();
item.setId(Integer.parseInt(cursor.getString(0)));
item.setName(cursor.getString(1));
item.setImage(cursor.getBlob(2));
// Adding contact to list
itemlist.add(item);

} while (cursor.moveToNext());
}
// close inserting data from database
db.close();
// return contact list
return itemlist;

}


And this is my java code to display the data in the listview



dataList = (ListView) findViewById(R.id.list);
db = new MyDb(this);
List<items> Item = db.getAllContacts();
for (items cn : Item) {
String log = "Id:" + cn.getId()
+ " ,Image: " + cn.getImage();

// Writing Contacts to log
Log.d("Result: ", log);
// add contacts data in arrayList
imageArray.add(cn);

}
adapter = new CustomListAdapter(this, R.layout.screen_list,
imageArray);
dataList.setAdapter(adapter);
dataList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
imageName = imageArray.get(position).getImage();
imageid = imageArray.get(position).getId();
//convert byte to bitmap
ByteArrayInputStream imageStream = new ByteArrayInputStream(
imageName);
theImage = BitmapFactory.decodeStream(imageStream);
Intent intent = new Intent(SearchItem.this,
DisplayDetails.class);
intent.putExtra("imageid", imageid);
intent.putExtra("imagename", theImage);
startActivity(intent);

}
});


And this is logcat that showed the image bitmap and id that can be read.



Id:2 ,Image: [B@428e21d8


I do not know what is wrong with my code, but i need to view that image in the listview. Any help would be appreciated.


0 comments:

Post a Comment