2010-10-03 18 views
2

J'ai une base de données avec 5 colonnes, 1 colonne qui est un TEXTE avec le nom d'un dossier dessablable/res/drawable.Paramètre de base de données Android ImageView

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 est un ImageView, comment puis-je définir l'image d'arrière-plan sur la base des données qui est tiré de achHelper.ROW_TROPHY?

Répondre

3

le simpleCursorAdapter besoin cordes, de sorte que votre StringArray « de » doit obtenir des objets String de la colonne achHelper.ROW_TROPHY lorsque vous configurez votre base de données, il doit ressembler à ceci:

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

Alors, quand vous faites votre entrée dans votre base de données que vous devez convertir l'ID de votre TropyImage (whitch est entier) R.drawable.yourTropyImage à une chaîne:

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); 

votre String[] from, int[] to et simpleCursorAdapter semblent corrects. Vous devez juste avoir le bon DataType et ID dans la colonne ROW_TROPY.