您的位置:首页 > 其它

EditText屏蔽特殊字符(设置键盘不接受回车。。用URLEncoder.encode()就可以解决)

2016-05-18 17:27 417 查看
et_content = (EditText) findViewById(R.id.et_content);

et_content.addTextChangedListener(watcher);

et_content.setOnEditorActionListener(new OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId,

KeyEvent event) {

if (actionId == EditorInfo.IME_ACTION_UNSPECIFIED) {

return true;

}

return false;

}

});

//输入表情前EditText中的文本

private String tmp;

//是否重置了EditText的内容

private boolean resetText;

private TextWatcher watcher = new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

if(!resetText){

String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(s.toString());

if( m.find()){

et_content.setText(tmp);

et_content.invalidate();

Toast.makeText(YiJianFanKuiActivity.this, "不允许输入特殊符号!", Toast.LENGTH_LONG).show();

}

}else{

resetText = false;

}

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

if(!resetText){

tmp = s.toString();//这里用s.toString()而不直接用s是因为如果用s,那么,tmp和s在内存中指向的是同一个地址,s改变了,tmp也就改变了,那么表情过滤就失败了

}

}

@Override

public void afterTextChanged(Editable s) {

Editable etext = et_content.getText();

Selection.setSelection(etext, etext.length());

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: