Automatically add dash in phone number in Android

前端 未结 7 2328
-上瘾入骨i
-上瘾入骨i 2020-12-17 21:18

Instead of 5118710, it should be 511-8710. I\'d like to add a dash after the user the user inputted 3 digits already in the EditText. The maximum length of

7条回答
  •  粉色の甜心
    2020-12-17 21:43

    Implement the following modified addTextChangedListener for txt_HomeNo. The code below is checking if the length of the text entered is 3 and if it is then add the - to it. Not a very robust solution but it works!

    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
        }
    });
    

提交回复
热议问题