我有这段代码:
public TextView main_text;//begining of the class
main_text = (TextView) findViewById(R.id.TextMain); //inside OnCreate
main_text.setEnabled(false); //inside button handler
现在是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>
为什么SetEnable没有工作?它应该是显而易见的。
答案 0 :(得分:9)
您希望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>
然后在TextView定义中使用
android:textColor="@drawable/textView"
答案 1 :(得分:0)
视图可以由多个可触摸元素组成。你必须全部禁用它们,如下所示:
for(View lol : text_view.getTouchables() ) {
lol.setEnabled(false);
}
如果它是一个简单的,因为它也会自行返回:
查找并返回作为此视图后代的所有可触摸视图,如果它本身可以触摸,则可能包括此视图。