簡體   English   中英

使用 Android 在 EditText 中使一些預填充字符不可編輯

[英]Make few prefilled characters uneditable in EditText using Android

我正在處理EditText ,我在開始時顯示預填充的國家代碼讓我們說“+971”,我想要的是如果用戶嘗試在EditText中單擊和編輯,他不應該編輯或刪除“+971”並且只能可以在“+971 123445579”之后添加數字,如果嘗試刪除數字,則“+971”不應該被刪除。

我的代碼如下,請指導我如何實現這一點。 謝謝

private fun setupTextChangeListener() {
        edit_text.textWatcherListener = object : TextWatcher {
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
            }

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                setDatePickerIconOnDemand()
            }

            override fun afterTextChanged(s: Editable?) {
            }
        }
    }

// 在這個方法中,我將 Start Drawable 放在 EditText 中:

private fun setDatePickerIconOnDemand() {
    edit_text.setDrawableStart(context.drawable(R.drawable.ic_earh_arrow_down_default))
    edit_text.setDrawable()
}

您可以在onTextChanged回調中添加以下代碼行

 if (edit_text.length() < 5 || !edit_text.text!!.startsWith("+971 ")) {
     edit_text.setText("+971 ")
     edit_text.setSelection(edit_text.length())
   }

它會做的是:它將檢查 onTextChanged '如果您當前在編輯文本中的文本只是您的國家代碼,在您的 editText 中設置國家代碼並在最后移動 cursor。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM