My app uses Theme.Holo.Light.DarkActionBar
as the parent theme.
When I use my Android 3.2 tablet emulator, the EditText shape is almost impossible to see. It looks like it is trying to draw white on white. Seen here:
When I use it on my Android 4.0 tablet emulator, the EditText shape looks just fine. You can see the dark grey line along the bottom of the EditText. If you look in the above image, you'll just barely see a white line in the same place as it crosses the light grey background watermark.
Here is my EditText in the layout:
<EditText
android:id="@+id/fieldName"
style="@style/PlayerDetails.Field"
android:capitalize="words" />
And here is the style:
<style name="PlayerDetails.Field">
<item name="android:layout_weight">0.65</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_marginLeft">10dp</item>
</style>
Why is my EditText getting drawn the wrong color? I'm not overriding the drawing code or the background drawable.
The other answers weren't actually solutions to my problem and I never figured out what was REALLY causing the issue. However, this is how I solved it: My workaround was to copy the .9.pngs and styling for the EditText widget from Ice Cream Sandwich and hardcoded into my app for Honeycomb and Ice Cream Sandwich.
EDIT:
I created a file called res/drawable-nodpi/edit_text_holo_light.xml with the following:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/textfield_multiline_default_holo_light" />
<item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_multiline_disabled_holo_light" />
<item android:state_multiline="true" android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_activated_holo_light" />
<item android:state_multiline="true" android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_multiline_focused_holo_light" />
<item android:state_multiline="true" android:state_enabled="true" android:drawable="@drawable/textfield_multiline_default_holo_light" />
<item android:state_multiline="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_disabled_focused_holo_light" />
<item android:state_multiline="true" android:drawable="@drawable/textfield_multiline_disabled_holo_light" />
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_light" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_disabled_holo_light" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_activated_holo_light" />
<iten android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_focused_holo_light" />
<item android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_light" />
<item android:state_focused="true" android:drawable="@drawable/textfield_disabled_focused_holo_light" />
<item android:drawable="@drawable/textfield_disabled_holo_light" />
</selector>
Then I created a style in my styles.xml to set:
<item name="android:background">@drawable/edit_text_holo_light</item>
Then I copied the .9.png files from the android sdk and put them in res/drawable-*. The filenames are listed in the above xml.
You can have an action bar and still see the EditText
light grey background watermark if you use themes like below:
AndroidManifest.xml
<activity
android:name=".ClassName"
android:label="ClassName"
android:theme="@style/MyTheme" >
styles.xml
<resources>
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="android:Widget.Holo.ActionBar">
<item name="android:background">@color/black</item>
</style>
</resources>
This works for the theme "android:Theme.Holo.Light" but not for the theme "android:Theme.Holo".
I figure out my issue. By setting theme in application element android:theme="@android:style/Theme"
in manifest.xml file.
<application
android:label="@string/app_name"
android:icon="@drawable/logo"
android:vmSafeMode="false"
android:theme="@android:style/Theme">
Try this.