Android - 在XML中禁用TextView onClick?

时间:2011-10-12 21:12:58

标签: android listview adapter

我有各种TextView的列表。然后我有一个onItemClick处理程序来处理用户点击项目的时间。

我想要点击一些TextView。有些我不想被点击。

对于不可点击的TextView,我使用以下XML

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item_separator_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/black"
    android:background="@drawable/rounded_corners_none"
    android:textSize="16sp"
    android:paddingTop="15dp"
    android:paddingBottom="5dp"
    android:paddingLeft="15dp"
    android:enabled="false"
    style="?android:attr/listSeparatorTextViewStyle" />

我在那里有enabled="false",但该项仍然可以点击。是否有可用于使TextView无法点击的XML属性?

或者问题是我没有真正单击TextView而是单击包含TextView的视图?

禁用点击的唯一方法是以编程方式执行吗?

public void onItemClick(...)
{
  if ( // view is disabled )
    return;

  // else, do something
}

2 个答案:

答案 0 :(得分:6)

不确定

android:clickable="false"

在代码中,您可以使用setClickable()方法。

“可点击性”是所有View类型和ViewGroups都有的东西,但有时你必须要小心一点,ViewGroup如何/何时将点击(或不是)传递给它的孩子。

此外,检查后,启用似乎不是TextViews的有效属性。

答案 1 :(得分:-2)

这对我来说很好用:

editText.setInputType(View.LAYER_TYPE_NONE);