使用Android使EditText中的几个预填充字符不可编辑
我正在使用使用Android使EditText中的几个预填充字符不可编辑,android,android-edittext,textwatcher,android-textwatcher,Android,Android Edittext,Textwatcher,Android Textwatcher,我正在使用EditText在开始时显示预先填写的国家代码,比如说“+971”,我想要的是,如果用户试图在EditText中单击并编辑,他不应该编辑或删除“+971”,只能将数字放在“+97123445579”之后,如果试图删除数字,则应该是“+971”不应得到删除 我的代码如下,请指导我如何实现这一点。谢谢 private fun setupTextChangeListener() { edit_text.textWatcherListener = object : TextWa
EditText
在开始时显示预先填写的国家代码,比如说“+971”,我想要的是,如果用户试图在EditText
中单击并编辑,他不应该编辑或删除“+971”,只能将数字放在“+97123445579”之后,如果试图删除数字,则应该是“+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?) {
}
}
}
//在该方法中,我将开始在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())
}
if(edit_text.length()<5||!edit_text.text!!.startsWith(“+971”)){
编辑_text.setText(“+971”)
编辑_text.setSelection(编辑_text.length())
}
它将做的是:它将检查onTextChanged'如果编辑文本中的当前文本只是您的国家代码,请在编辑文本中设置国家代码并在末尾移动光标。非常感谢您的帮助。