键入时如何在开始时将字符添加到EditText

时间:2018-07-24 16:42:57

标签: android android-edittext

当人们输入电话号码时,我想在editText字段中添加“ +”。但是我似乎无法在此代码中添加“ +”。

EditText editText = (EditText) findViewById(R.id.register_edit_phone);

    editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {


        }
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            // TODO Auto-generated method stub
        }
        @Override
        public void afterTextChanged(Editable text) {
            // TODO Auto-generated method stub
            if (text.length() == 0) {
                text.append('+');
            }
        }
    });

我应该进行哪些更改才能使其正常工作?

2 个答案:

答案 0 :(得分:0)

下面的代码将在EditText的开头添加常量+。哪个用户无法清除。

        final EditText editText = findViewById(R.id.editText);
        final String prefix = "+";
        editText.setText(prefix);
        Selection.setSelection(editText.getText(), editText.getText().length());
        editText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                                          int after) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                if (!s.toString().startsWith(prefix)) {
                    editText.setText(prefix);
                    Selection.setSelection(editText.getText(), editText.getText().length());
                }
            }
        });

答案 1 :(得分:0)

onTextChanged放在下面的代码中

edittext.setText(“+”.concat(ediitext.getText());