Android文本输入

本文最后更新于:2022年12月17日 中午

文本输入

编辑框EditText

编辑框EditText用于接收软键盘输入的文字,例如用户名、密码、评价内容等,它由文本视图派生而来,除了TextView已有的各种属性和方法,EditText还支持下列XML属性。

  • inputType:指定输入的文本类型。输入类型的取值说明见表,若同时使用多种文本类型,则可使用竖线”|”把多种文本类型拼接起来。
  • maxLength:指定文本允许输入的最大长度。
  • hint:指定提示文本的内容。
  • textColorHint:指定提示文本的颜色。
输入类型 说明
text 文本
textPassword 文本密码。显示时用圆点”·”代替
number 整型数
numberSigned 带符号的数字。允许在开头带负号”- “
numberDecimal 带小数点的数字
numberPassword 数字密码。显示时用圆点”·”代替
datetime 时间日期格式。除了数字外,还允许输入横线、斜杆、空格、冒号
date 日期格式。除了数字外,还允许输入横线”-“和斜杆”/“
time 时间格式。除了数字外,还允许输入冒号”:”

焦点变更监听器

编辑框点击两次后才会触发点击事件,因为第一次点击只触发焦点变更事件,第二次点击才触发点击事件。

若要判断是否切换编辑框输入,应当监听焦点变更事件,而非监听点击事件。

调用编辑框对象的setOnFocusChangeListener方法,即可在光标切换之时(获得光标和失去光标)触发焦点变更事件。

应用:用于限制文本长度

文本变化监听器

调用编辑框对象的addTextChangedListener方法即可注册文本监听器。

文本监听器的接口名称为TextWatcher,该接口提供了3个监控方法,具体说明如下。

  • beforeTextChanged:在文本改变之前触发。
  • onTextChanged:在文本改变过程中触发。
  • afterTextChanged:在文本改变之后触发。

应用:监听文本位数自动关闭软键盘

TextInputEditText

TextInputEditText是遵循Material Design设计的文本输入框。

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:endIconDrawable="@drawable/ic_baseline_clear_24" 这里可以修改end图标的样式
    app:endIconMode="clear_text" 这里可以修改end图标的模式
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/guideline2">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:hint="Text" />
</com.google.android.material.textfield.TextInputLayout>

Android文本输入
https://yorick-ryu.github.io/Android/Android文本输入/
作者
Yorick
发布于
2022年11月29日
许可协议