0

我正在开发一个将数据发送到我的网络服务并将它们存储在我的数据库中的 Android 项目。

我添加了一个编辑文本字段,允许用户发表一些评论。但是,当数据到达 Web 服务时,引号之类的某些字符会被菱形中的问号替换。

所以我实现了一个使用函数“replace”将特殊字符替换为“”的方法。

我的问题:是否有另一种方法可以从我的键盘上删除它们(以防止使用这些字符)?或者用户可以按下它但不采取任何行动。

编辑1:

最后是否可以允许这些字符:

  • [阿兹]
  • 重音字符
  • [AZ]
  • [0-9]
  • ?,.;/:!%*-+_ {}() [] ...

并将另一个替换为“”

4

1 回答 1

2

要阻止特殊字符,您可以像这样使用编辑文本的 setFilters 。

   InputFilter[] myfilters = new InputFilter[1];
            myfilters[0] = new InputFilter() {
                @Override
                public CharSequence filter(CharSequence source, int start,
                        int end, Spanned dest, int dstart, int dend) {
                    if (end > start) {
                        if (dest != null) {
                        //do some filter
                        }
                    }
                    return null;
                }
            };

            editText.setFilters(myfilters);
于 2013-01-08T10:04:57.937 回答