EditText에서 onClick 이벤트에 불을 붙이는 방법

4394 단어 Android

개막사


EditText(TextView일 수 있음)의 onClick 활동만 지정하면 활동에 불이 붙지 않습니다.결론적으로 클릭able과fucusable를 진짜로 만들면 클릭 이벤트를 받을 필요가 있다.

디테일


샘플에 EditText의 Activity만 배치

클릭 후 Toast의 이벤트 함수만 표시
fun onClickEditText(v: View)
            = Toast.makeText(this, "click!", Toast.LENGTH_SHORT).show()
여분의 항목이 잘 보이지 않지만 지정android:onClick="onClickEditText"했을 뿐이다
activity.xml
 <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"

        android:onClick="onClickEditText"/>
→실제로 클릭해도 이벤트가 일어나지 않는다!!
EditText에 android:clickable="true"android:focusable="true"를 추가하면 이벤트에 불이 나요.
activity.xml
<EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"

        android:onClick="onClickEditText"
        android:clickable="true"
        android:focusable="true"/>

좋은 웹페이지 즐겨찾기