2

I have a database with 5 columns, 1 column which is a TEXT with the name of a drawable that is /res/drawable folder.

    private void fillData() {

    mCursor = db2.getAllAchievements();
    startManagingCursor(mCursor);


    String[] from = new String[]{achHelper.ROW_NAME, achHelper.ROW_DESCRIPTION, achHelper.ROW_POINTS, achHelper.ROW_TROPHY};


    int[] to = new int[]{R.id.achTitle, R.id.achDescription, R.id.achPoints, R.id.trophy};

    SimpleCursorAdapter classes =
            new SimpleCursorAdapter(this, R.layout.ach_row, mCursor, from, to);
    setListAdapter(classes);
}

R.id.trophy is a ImageView, how can I set the background image based on the data that is being pulled from achHelper.ROW_TROPHY?

Jay_EL
  • 69
  • 1
  • 7

1 Answers1

3

the simpleCursorAdapter need Strings, so your StringArray "from" must get String objects from the column achHelper.ROW_TROPHY when you setup your database it has to look like this:

 private static final String TABLE_CREATE = "CREATE TABLE " here your other colums
                                            + ROW_TROPHY + " TEXT NOT NULL);";
 db.execSQL(TABLE_CREATE);

So when you make your entry into your Database you have to convert the ID of your TropyImage (whitch is Integer) R.drawable.yourTropyImage to a string:

ContentValues cv = new ContentValues();
cv.put( your other columns, your other input);
cv.put(ROW_TROPHY, Integer.toString(R.drawable.yourTrophyImage));

return db.insert(DATABASE_TABLE, null, cv);

Your String[] from, int[] to and simpleCursorAdapter seem to be correct. You just must have the right DataType and ID in the ROW_TROPY column.

Praveenkumar
  • 24,084
  • 23
  • 95
  • 173
Dan
  • 787
  • 1
  • 7
  • 20