Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改焦点上的文本视图颜色_Android_Textview - Fatal编程技术网

Android 更改焦点上的文本视图颜色

Android 更改焦点上的文本视图颜色,android,textview,Android,Textview,在我的相对布局中有imageview、textview和其他视图。现在我的问题是文本视图的颜色在聚焦时没有改变。我的布局是 <RelativeLayout android:id="@+id/view" android:background="@drawable/bg1" android:focusable="true" android:clickable="true" android:layout_width="wrap_content" android:layout_heigh

在我的相对布局中有imageview、textview和其他视图。现在我的问题是文本视图的颜色在聚焦时没有改变。我的布局是

<RelativeLayout android:id="@+id/view"
 android:background="@drawable/bg1"
 android:focusable="true"
 android:clickable="true" 
android:layout_width="wrap_content"
 android:layout_height="wrap_content" >
 <TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/text" 
android:textStyle="bold" 
android:textSize="20dp"
 android:textColor="@color/selector" /> 

这里第43行是xml中textview的开始,为textview实现OnFocusChangeListener

textView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus){
        //do something
    }else {
       //do something 
    }
   }
});

实现XML可绘制。您可以通过在xml中定义EffectonFocus、onPress等来实现它。 mycustom.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/your_imagename_while_focused"/>
<item android:state_pressed="true" android:drawable="@drawable/your_imagename_while_pressed" />
<item android:drawable="@drawable/image_name_while_notpressed" />  //means normal
</selector>

//意味着正常
Android在textView xml中

<TextView
.
.
.
.
android:Background="@drawable/mycustom.xml"
.
/>

嗨,我刚刚尝试了下面的方法,它对我有效

创建一个可绘制文件colorchange.xml,如下所示

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@android:color/holo_blue_dark"/>
    <item android:state_pressed="true" android:color="@android:color/holo_red_light" />
    <item android:state_focused="false" android:color="@android:color/white" />
    <item android:state_pressed="false" android:color="@android:color/white" /> 
</selector>

希望这有帮助。

您也可以对设计本身做同样的事情,即使用xml。参考这个,我需要在xml中实现它,它可能是抛出视图膨胀异常整洁的文本视图。我也试过这个
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@android:color/holo_blue_dark"/>
    <item android:state_pressed="true" android:color="@android:color/holo_red_light" />
    <item android:state_focused="false" android:color="@android:color/white" />
    <item android:state_pressed="false" android:color="@android:color/white" /> 
</selector>
android:textColor="@drawable/colorchange"