Как выделить TextView или LinearLayout при щелчке по нему?

У меня есть LinearLayout, который содержит три TextView. Я хочу выделить TextView или весь макет, когда пользователь нажимает на TextView. Это какой-то способ сделать это?

Спасибо.

Ответы

Ответ 1

Я полагаю, 2 Layout

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"

    >

    <LinearLayout
        android:id="@+id/root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/selectableItemBackground"
        android:clickable="true"
        >
...
    </LinearLayout>
</LinearLayout>

findViewById(R.id.root).setOnClickListener(...);

Ответ 2

Я не мог заставить работать римские методы, но вместо этого нашел свой ответ здесь. Используйте ресурс XML в качестве фонового рисунка и вуаля! он работал как шарм.

Ответ 3

Существует несколько способов сделать это.

Самый простой способ сделать это - сыграть с различными View атрибутами, такими как android:focusable, android:focusableInTouchMode, android:clickable и TextView, например android:selectAllOnFocus.

Вы также можете настроить внешний вид своих представлений, установив их фоны на StateListDrawable (aka <selector> drawables).