setEnabled在android中不起作用

bar*_*tek 1 java android

我有这个代码:

public TextView main_text;//begining of the class

main_text = (TextView) findViewById(R.id.TextMain); //inside OnCreate

main_text.setEnabled(false); //inside button handler
Run Code Online (Sandbox Code Playgroud)

而现在是Xml的一部分

    <TextView
        android:id="@+id/TextMain"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="left"
        android:textColor="#FFFFFF"
        android:text="@string/home_load" >

    </TextView>
Run Code Online (Sandbox Code Playgroud)

为什么SetEnable不起作用?它应该是显而易见的.

Jef*_*ffG 10

你对setEnabled(false)TextView有什么期望?

如果要隐藏TextView,则应该调用 setVisibility(View.INVISIBLE)

如果要禁用点击次数,则应该致电 setOnClickListener(null)

如果希望文本显示为禁用状态,则需要在单独的XML文件中定义视图的状态.

例如textView.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:color="@color/enabled" />
    <item android:state_enabled="false" android:color="@color/disabled" />
</selector>
Run Code Online (Sandbox Code Playgroud)

然后在你的TextView定义中使用

android:textColor="@drawable/textView"
Run Code Online (Sandbox Code Playgroud)