Java setEnabled在android中不起作用

Java setEnabled在android中不起作用,java,android,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 现在是Xml的一部分 <TextView android:id="@+id/TextMain"

我有以下代码:

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>


为什么不启用工作?显然应该这样做。

您希望对TextView执行什么
setEnabled(false)

如果要隐藏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>

视图可以由多个可触摸元素组成。您必须全部禁用它们,如下所示:

for(View lol : text_view.getTouchables() ) {
    lol.setEnabled(false);
}
如果它是一个简单的,因为它也返回自身:

查找并返回作为此视图的后代的所有可触摸视图,如果此视图本身是可触摸的,则可能包括此视图


如果在活动中看不到更多的代码,很难预测什么是错误的。请参考此url[[1]:好的,代码现在非常大。但基本上,我展示的部分都是指我想隐藏的elemend。我应该展示哪些其他部分,在这个简单的函数中有什么关系?嗯,用不同的话来说:我在没有任何东西的情况下尝试此代码(我只是尝试隐藏文本视图)…但什么都没有发生(虽然setVisibility(GONE)在相同的配置中工作得很好),我想创建包含两个函数的活动,如:显示描述符、显示联系人、显示库。创建库时,我会向线性视图添加一些图片,但当我想(再次)显示描述符时我需要从图库中隐藏图片。我知道这可能不是最好的解决方案。我尝试了“看不见/消失”,它可以工作,但我需要一些通用的东西,所以我现在尝试使用setEnabled(并循环通过线性视图的子视图),但现在它不起作用。您应该有3个线性布局-(1)用于描述,(2)对于画廊图像。将这两个线性布局包装在第三个或另一个线性布局(3)(或框架布局,具体取决于您希望它的显示方式)。然后您可以使用layout.setVisiblity(View.GONE)隐藏整个内部线性布局(1)或(2)通过这种方式,你可以隐藏画廊或描述的父对象,布局中的所有子对象都将隐藏tooThanx,我将尝试一下,并发布一些代码。确定+1。杰夫,这不是我最初的问题。但你确实解决了我的问题,我的应用程序现在运行良好:D。我再次单击你,表示接受。Thanx。我当使用它们作为选择器时,使用
state\u enabled
可以发现一些有趣的行为。基本上确保您按下了
state\u
state\u enabled
。这两个选项都不允许启用状态注册。还有人注意到吗?
for(View lol : text_view.getTouchables() ) {
    lol.setEnabled(false);
}