2012-06-08 11 views
17

Hallo Ich habe eine ziehbare myshape.xml, enthält eine <shape> und ich kann nicht festlegen, ein Android: ID zu Formen.Android-Set XML-Form als programmgesteuert programmierbar

In meinem Code möchte ich auf diese Datei, um den Hintergrund einer Ansicht setzen

catAll.setBackgroundDrawable(getResources().getDrawable(R.id......???));

mit dem myshape.xml zeigt nicht in meiner R-Datei, weil es keine ID hat. und ich kann ID nicht zum Objekt setzen.

In meinem XML setze ich die Form, indem Sie einfach den Namen der ausklappbaren Ressource eingeben. Aber ich muss das programmatisch machen.

Antwort

29

Sie müssen das Zeichen nicht selbst erstellen. Verwenden Sie stattdessen:

catAll.setBackgroundResource(R.drawable.myshape); 

Für die Zukunft, wenn Sie Wunsch tun die ziehbar keep im Auge zu erhalten, die leben in der R.drawable Namespace Drawables. So würde der Code wurde:

getResources().getDrawable(R.drawable.myshape); 

Dies ist vergleichbar mit dem, was Sie tun in Ihrem XML:

@drawable/myshape 

statt

@id/myshape 
+0

die "R.drawable" Aufzeigen Namespace war der Schlüssel Danke K-Ballo! –

+0

getDrawable (ID) ID jetzt entzogen. –