如何在Android中使用addTextChangedListener()在2位,7位后的电话号码中添加连字符(-)

时间:2019-01-31 12:57:56

标签: android addtextchangedlistener

我正在将editTextaddTextChangedListener()一起使用,如何格式化并实现所需的模式。 它应该在添加和删除时也起作用,字符长度示例是2,连字符应加,在我再次删除和添加时,应再次添加连字符。

3 个答案:

答案 0 :(得分:0)

请检查。

txt_HomeNo.addTextChangedListener(new TextWatcher() {

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

        txt_HomeNo.setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                if (keyCode == KeyEvent.KEYCODE_DEL)
                    keyDel = 1;
                return false;
            }
        });

        if (keyDel == 0) {
            int len = txt_HomeNo.getText().length();
            if(len == 3) {
                txt_HomeNo.setText(txt_HomeNo.getText() + "-");
                txt_HomeNo.setSelection(txt_HomeNo.getText().length());
            }
        } else {
            keyDel = 0;
        }
    }

    @Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        // TODO Auto-generated method stub
    }
});

答案 1 :(得分:0)

您可以将自己的自定义过滤器添加到var array = []; array['x' * 3] = 'value'; // index/key is NaN console.log(array); console.log(array.NaN);


键入2个字符后,过滤器的此示例将添加“-”

EditText

答案 2 :(得分:0)

我认为您可以使用一些预定义的TextChange观察器PhoneNumberFormattingTextWatcher

EditText inputField = (EditText) findViewById(R.id.inputfield);
inputField.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
作为参考,此答案来自 https://stackoverflow.com/a/4674114/6656818