Speichern von IDs im XML-Array

Ich möchte die ID der ziehbaren Ressourcen in Form von R.drawable.* In einem Array unter Verwendung einer XML- R.drawable.* speichern und dann das Array in meiner Aktivität abrufen.

Irgendwelche Ideen, wie man das erreicht?

Sie verwenden ein typisiertes Array in der Datei arrays.xml in Ihrem /res Ordner, das folgendermaßen aussieht:

 < ?xml version="1.0" encoding="utf-8"?>   @drawable/car_01 @drawable/balloon_random_02 @drawable/dog_03   

Dann greife in deiner Aktivität auf sie wie folgt zu:

 TypedArray imgs = getResources().obtainTypedArray(R.array.random_imgs); // get resource ID by index imgs.getResourceId(i, -1) // or set you ImageView's resource to the id mImgView1.setImageResource(imgs.getResourceId(i, -1)); // recycle the array imgs.recycle(); 

Im value Ordner erstellen xml Dateiname es arrays.xml fügen Sie die Daten auf diese Weise zu

  @drawable/1 @drawable/2 @drawable/3 @drawable/4  

Dann erhalte es auf diese Weise deinen Code

 private TypedArray img; img = getResources().obtainTypedArray(R.array.your_array_name); 

Verwenden Sie dann den folgenden Code, um ein Drawable von diesen im img TypedArray beispielsweise als einen ImageView background verwenden

 ImageView.setBackgroundResource(img.getResourceId(index, defaultValue)); 

Dabei steht index für den Drawable Index. defaultValue ist ein Wert, den Sie defaultValue , wenn in diesem index kein Element vorhanden ist

Weitere Informationen zu TypedArray Sie unter http://developer.android.com/reference/android/content/res/TypedArray.html

Sie können damit ein Array anderer Ressourcen erstellen, z. B. Zeichen. Beachten Sie, dass das Array nicht homogen sein muss. Sie können also ein Array gemischter Ressourcentypen erstellen. Sie müssen jedoch wissen, was und wo sich die Datentypen im Array befinden.

  < ?xml version="1.0" encoding="utf-8"?>   @drawable/home @drawable/settings @drawable/logout   #FFFF0000 #FF00FF00 #FF0000FF   

Und erhalten Sie die Ressourcen in Ihrer Aktivität so

 Resources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0); 

Genießen!!!!!

Sie können Arrays nicht in R.drawable speichern, soweit ich weiß.

Sie können ein Array in der Datei “config.xml” oder “strings.xml” erstellen, das mithilfe einer Aliasressource einen Pfad zu einer aufzeichnbaren Ressource zuordnet.

Sehen Sie, ob das funktioniert und lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen.