2016-05-20 9 views
1

Wie bekomme ich eine Drawable-Ressource, wenn ich die Zeichenfolge (den Namen), wie es im Ordner drabale erscheint?Zeichenkette aus String in Android

int categoryPicIndex = myCursor.getColumnIndex(CookingContract.CategoryEntry.COLUMN_PIC_CATEGORY); 
String categoryPic = myCursor.getString(categoryPicIndex); 

An diesem Punkt habe ich die Zeichenfolge, die ich R.drawable .___ nennen verwenden würden. Wie kann ich das Problem lösen?

Antwort

0

Wenn "yourImageView" die Image ist und Sie wollen Hintergrund davon setzen und der Name des Bildes ist "imageName"

yourImageView.setImageResource(context.getResources(). 
       getIdentifier("drawable/" + imageName, null,context.getPackageName())); 

Aber ich sollte sagen, sorry, da es nicht wirklich geben Sie drawable aber es gibt Ressource, Aber ich hoffe, dies wird Ihnen helfen, den String-Namen der Zeichnungsdatei zu verwenden.

+0

Es ist auch erwähnenswert, dass dies Reflexion verwendet, so ist es besser, R.drawable.my_drawable direkt zu referenzieren (wenn das eine Option ist) – fractalwrench

+0

Danke, es hat funktioniert. Ich habe verwendet: int drawableResource = myContext.getResources(). GetIdentifier ("zeichnbare /" + categoryPic, null, myContext.getPackageName()); – Alex

+0

Besser auf diese Weise zu verwenden oder die Bilder als BLOB in der DB zu speichern? – Alex