[英]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.