在edittext中禁用退格

时间:2018-01-31 10:47:29

标签: android android-edittext

我正在创建一个应用程序,它将网站地址作为Edittext中用户的输入。我在XML文件的Edittext中设置http://

但问题是我想在Edittext中只有http://时禁用退格。我尝试了这个,但它没有用,

etLink.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            if (charSequence.equals("http://")){
                etLink.setOnKeyListener(new View.OnKeyListener() {
                    @Override
                    public boolean onKey(View view, int i, KeyEvent keyEvent) {
                        if (i == KeyEvent.KEYCODE_DEL){
                            return true;
                        }
                        return false;
                    }
                });
            }
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
 });

编辑

我可以使用TextViewImageView解决此问题,但有可能使用addTextChangedListener完成此操作吗?

1 个答案:

答案 0 :(得分:0)

解决方法可能只是在ImageView上放置http:// EditText并向EditText添加填充,以便文字从ImageView开始。您可以根据需要在java中附加http://

但对于TextWathcer方法,你可以这样做 -

etLink.setText("http://");
String after="";
etLink.setSelection(7);
etLink.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            after=s.toString();
            if(after.length()<7) {

                etLink.setText("http://");
                etLink.setSelection(7);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });