0

基本上,我想在EditText属性focusablefoucsableInTouchMode设置为false时更改提示的颜色。android中的hinttext颜色选择器

这与textColor一切都很好,但与Editext的textColorHint财产无用。

我尽我最大的努力,但所有的静脉,所以我的代码如下

我已创建了一个名为“colorListfile”表述如下绘制,

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:state_window_focused="false" 
     android:state_enabled="true" 
     android:color="@color/colorPrimaryDark" /> 

    <item 
     android:state_window_focused="false" 
     android:state_enabled="false" 
     android:color="@color/white" /> 
    <item 
     android:state_focused="true" 
     android:color="@color/login_signup_header_textcolor" /> 

    <item 
     android:color="@color/colorPrimary" /> 

</selector> 

我的EditText如下图所示,

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="zuluzulu01" 
    android:textColorHint="@drawable/colorListfile" 
    android:hint="Name" /> 

但是这个或任何其他方法没有奏效。但是,如果此属性设置为textColor,则此代码正常工作。

任何帮助将不胜感激。

+0

可以将'color'更改为'drawable',例如像'<项 机器人:state_focused = “真” 机器人:抽拉= “@颜色/ login_signup_header_textcolor”/>' –

+0

@周恩旭,由于哥们,但这也行不通 –

回答

1

你说你想

改变提示的颜色时的EditText属性Focusable和focusableInTouchMode设置为false

ColorStateList完美。只是它取决于state_focused(即,View具有焦点)和state_window_focused(即,View的窗口具有焦点)。

为了确保,我刚刚有两个EditText S(所以当用户忙在同一窗口中EditText会失去焦点),一个Button(以恩/禁用EditText)和仿真器上运行测试牛轧糖(这样我就可以切换焦点到另一个窗口)

不幸的是,没有选择项属性state_focusablestate_focusableInTouchMode。(见Color List Resource的文档) 所以,如果你真的想提示的颜色取决于focusablefocusableInTouchMode被设置为错误,您将不得不每次切换这些属性时以编程方式设置所需的颜色。

myEditText.setHintTextColor(Color.GREEN)