如何清除逐个字符编辑文本...包括特殊字符?

时间:2014-09-05 10:37:17

标签: android

我有一个编辑文本,它有数字和特殊字符,如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个数字之间..现在如果我想清除使用上面的代码它不起作用..请帮助

2 个答案:

答案 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;
                }

            }
        }
    });