我有一个编辑文本,它有数字和特殊字符,如1234-11222
如何删除numbers
和-
?
我有一个代码,它适用于字母和数字,但它不适用于特殊字符。
public void onClick(View v) {
aadrclear.setVisibility(View.INVISIBLE);
String textaddress=addr.getText().toString();
//txtUserName.setText("");
if (textaddress.length() != 0) {
textaddress = textaddress.substring(0, textaddress.length() - 1);
addr.setText(textaddress);
addr.setSelection(textaddress.length());
}
}
我有一个编辑文本...如果我输入数字- (hyphen)
放在4个数字之间..现在如果我想清除使用上面的代码它不起作用..请帮助
答案 0 :(得分:0)
这将是我对您的问题的理解的解决方案。
if(textaddress.getText().toString().trim().length() > 0) {
if(textaddress.getText().toString().charAt(textaddress.getText().toString().trim().length() - 1) != '-') {
String result = textaddress.getText().toString().substring(0,textaddress.getText().toString().length() - 1);
textaddress.setText(result);
textaddress.setSelection(result.length());
}
}
如果错误通知我
EDIT
如果您也有兴趣删除-
。删除if condition
。
现在代码就像。
if(textaddress.getText().toString().trim().length() > 0) {
String result = textaddress.getText().toString().substring(0,textaddress.getText().toString().length() - 1);
textaddress.setText(result);
textaddress.setSelection(result.length());
}
答案 1 :(得分:0)
添加 - 每4个数字使用此代码段
int offset = 0;
textaddress.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
offset++;
if (textaddress.getText().toString().trim().length() > 0) {
if (offset == 4) {
String result = text_address.getText().toString()
.concat("-");
textaddress.setText(result);
textaddress.setSelection(result.length());
offset = 0;
}
}
}
});