Attribute values ββdefined using textAppearance apply before attribute values ββin a style. A Button is a TextView with a style, and the default Button style will override your textAppearance (for example, Android 2.3 will set it to: android: attr / textAppearanceSmallInverse) and textColor.
textAppearance excludes styles as values, android:textAppearance="@style/login_button_text_appearance" is usually the correct way to set textAppearance, but not for Button :
If you change the color of the Button text, you must also force the custom background image, because if you do not, one device will use a dark background image (motorola defy) and the other will use light image (htc desire), which may make it difficult to read text.
source share