首页 > 解决方案 > 键入时如何在开头添加一个字符到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('+');
            }
        }
    });

我应该改变什么才能让它工作?

标签: androidandroid-edittext

解决方案


下面的代码将在您的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());
                }
            }
        });

推荐阅读