/** Fills all the list with the vehicles objects */ private void fillData() { Cursor vehicleCursor = mDbHelper.fetchVehicles(); // TODO Use a CursorLoader (startManagingCursor is deprecated) // TODO Perhaps save thumbnail to database? startManagingCursor(vehicleCursor); SimpleCursorAdapter vehicleAdapter = new SimpleCursorAdapter( this, R.layout.vehiclerow, vehicleCursor, new String[] {"makeName", "model", "registration", "registration", "_id"}, new int[] { R.id.vehicleRow_make, R.id.vehicleRow_model, R.id.vehicleRow_pic, R.id.vehicleRow_registration, R.id.vehicleRow_avgConsumption }); vehicleAdapter.setViewBinder( new ViewBinder() { public boolean setViewValue(View view, Cursor cursor, int columnIndex) { if (view.getId() == R.id.vehicleRow_avgConsumption) { if (mDbHelper.getNumFuelings(cursor.getInt(columnIndex)) > 0) { TextView text = (TextView) view; text.setText( String.format( "%.1f l/100Km", mDbHelper.getAverageFuelConsumptionByVehicleID( cursor.getInt(columnIndex)))); } return true; } if (view instanceof TextView) { TextView text = (TextView) view; text.setText(cursor.getString(columnIndex)); return true; } if (view.getId() == R.id.vehicleRow_pic) { ImageView image = (ImageView) view; File directory = new File(Environment.getExternalStorageDirectory(), "fuelmonitor/"); File file = new File(directory, (cursor.getString(columnIndex) + "t.jpg")); if (file.exists() && file.length() > 0) image.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath())); return true; } return false; } }); getListView().setAdapter(vehicleAdapter); }