Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android使EditText中的几个预填充字符不可编辑_Android_Android Edittext_Textwatcher_Android Textwatcher - Fatal编程技术网

使用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'如果编辑文本中的当前文本只是您的国家代码,请在编辑文本中设置国家代码并在末尾移动光标。

非常感谢您的帮助。