2012-07-25 5 views
5

Ich muss dynamisch eine formatierte Schaltfläche erstellen. Ich dachte, vielleicht sollte ich es wie folgt tun:Wie man eine Taste dynamisch erstellt und ihr einen Stil zuweist, der in styles.xml definiert ist?

XmlPullParser parser = m_context.getResources().getXml(R.style.Button_Plain); 
buttonStyle = Xml.asAttributeSet(parser); 
Button btn = new Button (m_context, buttonStyle); 

Aber getXml wirft Ausnahme „Anfordern Ressource ist fehlgeschlagen, weil es komplex ist“. Gibt es einen einfachen Weg, um das zu tun, was ich brauche?

+0

Wie wir Arten progrmatically hinzufügen? http://stackoverflow.com/q/11507476/1012284 –

+0

Bewirkt diese Frage Ihr Problem? [Set Style in Code] [1] [1]: http://stackoverflow.com/questions/2016249/how-to-programmatically-setting-style-attribute-in-a -view – banzai86

Antwort

7

Einsatz nach Constructor Button-Objekt zu erstellen:

http://developer.android.com/reference/android/widget/Button.html#Button(android.content.Context, android.util.AttributeSet, int)

public Button (Context context, AttributeSet attrs, int defStyle) 

und übergeben Sie folgende Parameter:

Button btn = new Button (m_context, null, R.style.Button_Plain); 

Keine Notwendigkeit XmlPullParser zu verwenden .

+0

Danke! Diese Seite, die Sie verlinkt haben, ist die erste Stelle, die ich gesucht habe, aber es scheint, dass Beschreibungen für Konstruktoren fehlen. –

+0

Sie sind willkommen, ja, es gibt keine Beschreibung überhaupt für Button-Klasse, aber wenn Sie in View-Klasse Dokumentation schauen, werden Sie genug finden. – jeet

0

Sein im Allgemeinen dies:

Button button = new Button(ContextActivity, null, R.style.whateverStyleYouHad);

Verwandte Themen