频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android EditText禁止输入中文字符
2015-01-19 11:20:12         来源:z1137730824的专栏  
收藏   我要投稿

只允许EditText输入数字或者email格式字符是非常简单的(详见API文档)。

要实现只允许输入自定的数字字符也是很容易的(详见API文档,setKeyListener(KeyListener) 和setFilters (InputFilter[]filters) )。

但是要限制只能输入指定的字母字符就非常的困难。

/**

InputFilter[] ifs = {new InputFilter.LengthFilter(10),new DigitsKeyListener(true,true)};
editText01.setFilters(ifs);

**/

发现,android:digits的参数是一个字符串,没有更多的语义检查,因此想到内部处理很可能仅是简单的检查,输入的字符是否在给定的字符串中(要我设计,我就这样做)。尝试着给它指定带有英文字符的参数,发现果然如此。万幸,万幸!

在layout.xml里

Xml代码 收藏代码
  1. android:id="@+id/register_userName_editText"
  2. style="@style/register_editText_style"
  3. android:digits="@string/register_name_digits"
  4. android:textColor="@drawable/register_edit_text_textColor"
  5. android:textColorHint="@drawable/register_hint_text_textColor"
  6. android:hint="@string/register_name_hint_text"
  7. />

    在string.xml里

    Xml代码 收藏代码
    1. ._0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLIMNOPQRSTUVWXYZ
    2. 另外:

      Java代码 收藏代码
      1. editText01.addTextChangedListener(new TextWatcher() {
      2. String tmp = "";
      3. String digits = "abcdef";
      4. @Override
      5. public void onTextChanged(CharSequence s, int start, int before, int count) {
      6. }
      7. @Override
      8. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
      9. tmp = s.toString();
      10. }
      11. @Override
      12. public void afterTextChanged(Editable s) {
      13. Log.d(Sample4Main.TAG, "<><>afterTextChanged<><>" + s.toString());
      14. String str = s.toString();
      15. if(str.equals(tmp)){
      16. return;
      17. }
      18. StringBuffer sb = new StringBuffer();
      19. for(int i = 0; i < str.length(); i++){
      20. if(digits.indexOf(str.charAt(i)) >= 0){
      21. sb.append(str.charAt(i));
      22. }
      23. }
      24. tmp = sb.toString();
      25. editText01.setText(tmp);
      26. }
      27. });
点击复制链接 与好友分享!回本站首页
相关TAG标签 中文 字符
上一篇:Android学习笔记之Menu的ShowAsAction属性的设置
下一篇:Android应用系列:双击返回键退出程序
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站