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

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());
  }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoqiang_0719

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值