影片直播系統原始碼,EditText輸入框的使用

zhibo系統開發發表於2023-11-10

影片直播系統原始碼,EditText輸入框的使用

為了良好的互動和使用者體驗,我們在做功能時需要對輸入框又一些狀態上的監聽才能更好的把一些資訊反饋給使用者。比如登入時的,錯誤提示,選中時的顏色改變等等,常用的一些方法如下:


1.內容編輯的監聽:當我們需要實時對內容進行監聽:比如內容為空/格式不對時,登入按鈕置灰不可點選。


emailEdit.addTextChangedListener(object : TextWatcher {
 
     // charSequence為在你按鍵之前顯示的字串  p1為新字串與charSequence開始出現差異的下標          
     //p2表示原字串的count個字元  p3表示將會被after個字元替換
            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}
 
    // 按鍵之前字串的p1位置的p2個字元已經被p3個字元替換形成新字串charSequence
            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
                if (!p0.isNullOrEmpty()) {
                    isEmailEmpty = false //是否為空
                }
    //在這裡面可以對內容做字數的判定等等,比如文字框的右下角一般都會有一個到達一定
    //字數就不可輸入,字型顏色變化等等
            }
 
    // afterTextChanged中 p0為EditText顯示的內容
            override fun afterTextChanged(p0: Editable?) {
                isRight = CheckEditFormat.checkEditInput(p0.toString())
                loginTv.isEnabled = !isEmailEmpty && !isPasswordEmpty //登入按鈕是否可       
     以點選,也可以在這裡動態更改該控制元件或者其他控制元件的背景,顏色等等
            }
        })
 
    //判斷輸入是否為郵箱格式
fun checkEditInput(string: String?): Boolean {
        val pattern = Pattern.compile("[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}")
        return ((string?.length ?: 0) > 0) && pattern.matcher(string ?: "").matches()
    }


2.是否聚焦監聽:選中更改背景,內容處理等等

 
emailEdit.setOnFocusChangeListener { view, b ->
     if (b) {
          view.setBackgroundResource(R.drawable.rgb32363b_strokeef7300_r8)//選中為黃色邊框
       }else{
         view.setBackgroundResource(R.drawable.rgb32363b_r8)//未選中為灰色邊框
       }
 }


3.進入介面聚焦狀態自動呼起軟鍵盤

object KeyboardUtils {
    /**
     * 彈起軟鍵盤
     * @param editText
     */
    fun openKeyBoard(editText: View, context: Context) {
        editText.isFocusable = true
        editText.isFocusableInTouchMode = true;
        editText.requestFocus();
        val timer = Timer();
        timer.schedule(object : TimerTask() {
            override fun run() {
                val imm: InputMethodManager = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                imm.showSoftInput(editText, 0)
            }
        }, 200)
 
    }
}


 以上就是 影片直播系統原始碼,EditText輸入框的使用,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2994697/,如需轉載,請註明出處,否則將追究法律責任。

相關文章