Android - Отключить TextView onClick в XML? - PullRequest
1 голос
/ 13 октября 2011

У меня есть список различных TextViews. Затем у меня есть обработчик onItemClick для обработки, когда пользователь нажимает на элементы.

Некоторые из TextViews, которые я хочу, чтобы на них нажимали. Некоторым я не хочу, чтобы на них нажимали.

Для текстовых представлений, не активируемых щелчком мыши, они используются с использованием следующего 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", но на предмет все еще можно нажать. Есть ли атрибут XML, который я могу использовать, чтобы сделать TextView недоступным для щелчка мышью?

Или проблема в том, что я на самом деле не щелкаю TextView, а щелкаю на View, содержащем TextView?

Единственный способ отключить щелчок - это сделать это программно?

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

  // else, do something
}

Ответы [ 2 ]

6 голосов
/ 13 октября 2011

Sure

android:clickable="false"

В коде вы можете использовать метод setClickable ().

«Кликабельность» - это то, что есть во всех типах View и ViewGroups, хотя иногда нужно быть немного осторожнее с тем, как / когда ViewGroup передает щелчок (или нет) своим детям.

Кроме того, после проверки значение enable не является допустимым атрибутом для TextViews.

0 голосов
/ 08 марта 2015

Это прекрасно работает для меня:

editText.setInputType (View.LAYER_TYPE_NONE);

...