0
이 코드를 사용하여 3 번째 및 4 번째 숫자 뒤에 전화 번호에 대시 ('-')를 추가합니다. 코드가 잘 작동합니다. 내 문제는 백 스페이스 키를 누르면 대시를 제거 할 수 없다는 것입니다. 백 스페이스를 누르면 도트를 추가하고 삭제할 수 있지만 대시는 사용할 수 없습니다.숫자 editText에서 숫자가 아닌 문자 삭제
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
MainActivity.headerName.setText("Verification");
phoneNumber = (EditText) getActivity().findViewById(R.id.phoneEditText);
int grup = 1;
phoneNumber.addTextChangedListener(new TextWatcher() {
int keyDel;
String a= phoneNumber.getText().toString();
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
phoneNumber.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KEYCODE_DEL) {
a = a.replace("-" , "");
phoneNumber.setText(a);
keyDel = 1;
}
return false;
}
});
if (keyDel == 0) {
int len = phoneNumber.getText().length();
if(len == 3 || len == 7) {
phoneNumber.setText(phoneNumber.getText() + "-");
phoneNumber.setSelection(phoneNumber.getText().length());
}
} else {
if(KeyEvent.isModifierKey(KEYCODE_DEL)) {
a = a.replace("-" , "");
phoneNumber.getText().toString().replace("-" , "");
phoneNumber.setText(a);
}
keyDel = 0;
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
어디서이 코드를 삽입해야합니까? aldeady는 "onKey"함수 내부와 if-else 내부에서 시도했습니다. 작동하지 않습니다. –