美文网首页
Android的EditInput组件必知必会

Android的EditInput组件必知必会

作者: SeekLife0 | 来源:发表于2022-02-02 15:37 被阅读0次

    1、如何修改光标颜色。

    在res/drawable下创建cursor_style.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <size android:width="1dp" />
        <solid android:color="@color/black" />
    </shape>
    

    在属性中引入

    android:textCursorDrawable="@drawable/cursor_style"
    

    2、限制输入为小数且只能输入小数点后两位。

    在属性中添加输入类型

    android:inputType="numberDecimal"
    

    在activity中进行设置

    //输入小数监听
    etArea.addTextChangedListener(object : TextWatcher {
             //找到小数点下标,如果不是小数或者小数点后没有第三位则正常输入,存在小数点后三位那么,把第三位删除。
              override fun afterTextChanged(edt: Editable) {
                    val temp = edt.toString()
                    val posDot = temp.indexOf(".")
                    if (posDot <= 0) return
                    if (temp.length - posDot - 1 > 2) {   //更改精确位数
                        edt.delete(posDot + 3, posDot + 4)  //根据精确位数进行变化
                    }
                }
    
                override fun beforeTextChanged(arg0: CharSequence, arg1: Int, arg2: Int, arg3: Int) {}
                override fun onTextChanged(arg0: CharSequence, arg1: Int, arg2: Int, arg3: Int) {}
    })
    

    3、输入文字居中显示。

    android:gravity="center"
    

    4、去除输入框的下划线。

    android:background="@null"
    

    5、常见的邮编,电话号码,身份证验证。

        //手机号码验证,验证是否为11位数字
        fun toCheckPhone(text : kotlin.String) : Boolean{ //
            val regx = Regex("^1[0-9]{10}\$")
            return text.matches(regx)
        }
    
        //邮政编码正则,验证是否为5位数字
        fun checkPostCode(text : String) : Boolean {
            val regx = Regex("^[1-9]\\d{5}\$")
            return text.matches(regx)
        } 
    
        //身份证验证
        fun personIdValidation(text : String) : Boolean{
            val regx = Regex("[0-9]{17}[Xx]")
            val reg1 = Regex("[0-9]{15}")
            val regex = Regex("[0-9]{18}")
            return text.matches(regx) or  text.matches(reg1) or  text.matches(regex)
        }
    

    6、常见布局

    修改光标,去除下划线,输入文字居中,限制输入字符类型

                            <EditText
                            android:id="@+id/et_area"
                            android:layout_width="70dp"
                            android:layout_height="20dp"
                            android:layout_toRightOf="@id/tv_area"
                            android:background="@null"
                            android:gravity="center"
                            android:inputType="numberDecimal"
                            android:paddingHorizontal="2dp"
                            android:textCursorDrawable="@drawable/cursor_style"
                            android:textSize="14dp" />
    

    7、设置字符输入个数

    xxx.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); //限制字符输入为20
    

    8、设置是否可以换行

    android:inputType="textMultiLine"
    

    9、以省略号的方式省略字符

    android:ellipsize="end"
    

    10、移动光标位置

    String text = "hello world"; 
    et.setText(text); 
    et.setSelection(text.length() );
    

    11、修改软键盘回车键文字

    只能修改为固定的文字,必须设置singleLine=”true”,否则没有效果。

    android:imeOptions="actionNext"
    

    12、监听回车键事件

            etMoney.setOnKeyListener(object : View.OnKeyListener {
                override fun onKey(view: View?, keyCode: Int, keyEvent: KeyEvent?): Boolean {
                    if (keyCode == KeyEvent.KEYCODE_ENTER) {
                        //业务代码
                    }
                    return false
                }
            })
    

    13、隐藏系统软键盘

    参考:https://www.jianshu.com/p/cc1882dfb7b8

    editText.showSoftInputOnFocus = false
    
    //输入框获取焦点回调时调用
    private fun hideSoftKeyboard(activity: Activity) {
        val view: View? = activity.currentFocus
        if (view != null) {
          val inputMethodManager = activity.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
          inputMethodManager.hideSoftInputFromWindow(
              view.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
        }
      }
    

    相关文章

      网友评论

          本文标题:Android的EditInput组件必知必会

          本文链接:https://www.haomeiwen.com/subject/emlhkrtx.html