I'm trying to make all EditText
's in my application have a consistent look. I'm aware that I can do something like this:
<style name="App_EditTextStyle"> <item name="android:background">@drawable/filled_roundededges_box_dark</item> <item name="android:textColor">#808080</item> <item name="android:layout_height">45dip</item> </style>
Then I can make a particular EditText
have this style by doing this:
<EditText ... style="@style/App_EditTextStyle ...>
But this way I have to remember to set the style individually for each and every EditText
in my application which is tedious, if not error prone.
Is there some way I could make this a part of a theme or something? This is so I don't have to associate this style to every EditText
. Something like this fictitious code block:
<style name="App_Theme" parent="@android:style/Theme.Holo"> ... <item name="android:EditTextSyle">@style/App_EditTextStyle</item> ... <style>
And then in my AndroidManifest.xml
I have something like:
<application .... android:theme="@style/App_Theme">
And Voila! all my EditText
's have the consistent style without me having to specify the style for each instance.
Override the attribute pointing to the EditText
style(named editTextStyle
:) ) in your custom theme:
<style name="App_Theme" parent="@android:style/Theme.Holo"> <item name="android:editTextStyle">@style/App_EditTextStyle</item> </style>
and make your custom style to extend Widget.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:background">@drawable/filled_roundededges_box_dark</item> <item name="android:textColor">#808080</item> <item name="android:layout_height">45dip</item> </style>
Edit:
If you're using the much newer AppCompat related themes use the editTextStyle attribute without the android prefix:
<style name="App_Theme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="editTextStyle">@style/App_EditTextStyle</item> </style>
@Luksprog answer is correct but not working for me. After some experimentation, I found out that removing the android namespace from editTextStyle made it work for me.
<style name="App_Theme" parent="@android:style/Theme.Holo"> <item name="editTextStyle">@style/App_EditTextStyle</item> </style>
and make your custom style to extend Widget.EditText
or if using the AppCompat theme Widget.AppCompat.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:background">@drawable/filled_roundededges_box_dark</item> <item name="android:textColor">#808080</item> <item name="android:layout_height">45dip</item> </style>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With