Last active
March 7, 2024 11:13
-
-
Save romannurik/7026222 to your computer and use it in GitHub Desktop.
Android example of how to programmatically instantiate a View with a custom style.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<manifest ...> | |
... | |
<!-- Make sure your app (or individual activity) uses the | |
theme with the custom attribute defined. --> | |
<application android:theme="@style/AppTheme" ...> | |
... | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyActivity extends Activity { | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
... | |
// Pass in the theme attribute that'll resolve to the | |
// desired button style resource. The current theme | |
// must have a value set for this attribute. | |
Button myButton = new Button(this, null, R.attr.myButtonStyle); | |
myButton.setText("Hello world"); | |
ViewGroup containerView = (ViewGroup) findViewById(R.id.container); | |
containerView.addView(myButton); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- The convention is to put the <style> elements below | |
in res/values/styles.xml and <declare-styleable> in | |
res/values/attrs.xml. --> | |
<resources> | |
<!-- First declare a custom theme attribute that'll | |
reference a style resource. --> | |
<declare-styleable name="AppTheme"> | |
<attr name="myButtonStyle" format="reference" /> | |
</declare-styleable> | |
<!-- Provide a style resource as the value for the | |
theme attribute. As a side note, if you want to | |
change the default button style, you can instead | |
override the android:buttonStyle attribute. --> | |
<style name="AppTheme" parent="android:Theme.Holo"> | |
<item name="myButtonStyle">@style/MyButton</item> | |
</style> | |
<!-- Define the custom button style itself. Make sure | |
to inherit from an existing button style. --> | |
<style name="MyButton" parent="android:Widget.Holo.Button"> | |
<item name="android:textColor">#f00</item> | |
</style> | |
</resources> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the info!