Instead of 5118710, it should be 511-8710 . I would like to add a dash after the user has entered 3 digits already in the EditText. The maximum length of an EditText is only 7 digits.
After I understood this problem, I was stuck in coding again. When I already entered 3 digits, it adds a dash (this is what I would like to happen), but my problem here is that the next 3 digits also add a dash (like this: 511-871- ) .. Please help me with this. thanks!
txt_HomeNo.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { boolean flag = true; String eachBlock[] = txt_HomeNo.getText().toString().split("-"); for (int i = 0; i < eachBlock.length; i++) { if (eachBlock[i].length() > 3) { flag = false; } } if (flag) { 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) { if (((txt_HomeNo.getText().length() + 1) % 4) == 0) { if (txt_HomeNo.getText().toString().split("-").length <= 3) { txt_HomeNo.setText(txt_HomeNo.getText() + "-"); txt_HomeNo.setSelection(txt_HomeNo.getText().length()); } } a = txt_HomeNo.getText().toString(); } else { a = txt_HomeNo.getText().toString(); keyDel = 0; } } else { txt_HomeNo.setText(a); } }
user2400937
source share