Android Edittext:当包含拼写错误的单词(带有红色下划线)时,不允许提交

时间:2014-10-03 03:02:06

标签: android android-edittext misspelling

我最近制作了我的第一个Android应用程序,它有一个Edittext区域,计划只允许用户输入拼写正确的单词。基本上我已经学会了如何使用Android:inputType之类的布局属性来检测任何拼写错误的单词。任何拼写错误的单词都应标有红色下划线。但我找不到阻止用户输入拼写错误的单词的方法。

理想情况是:如果用户输入任何拼写错误的单词并单击提交按钮,则会出现提示消息(例如Toast消息),以通知用户修改拼写错误的单词,然后才能真正提交。

3 个答案:

答案 0 :(得分:2)

按照此链接中的步骤创建拼写检查器。 http://www.tutorialspoint.com/android/android_spelling_checker.htm

然后修改上面的示例代码以满足您的要求: 例如。当(arg0.length == 0),这意味着没有建议(没有拼写错误),您可以从这里创建验证。 但是,它可能是一个不是用英语写的词。所以你需要语言检测:

https://code.google.com/p/language-detection/ (来自:How to detect language of user entered text?

答案 1 :(得分:0)

要实现这一点,你需要做的是实现spellchecksession监听器。 也许你可以使用拼写检查监听器和文本观察器。

SpellCheckListener

答案 2 :(得分:0)

您可以使用此方法验证单词(拼写检查)。

public boolean CheckForWord(String Word){
    try {
        BufferedReader in = new BufferedReader(new FileReader("/usr/share/dict/american-english"));
        String str;
        while ((str = in.readLine()) != null) {
            if ( str.indexOf( Word) != -1 ) {
                return true;
            } 
        }
        in.close();
    } 
    catch (IOException e) {
    }

return false;
}

在SUBMIT按钮上单击

btnSUBMIT.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
             String EdittextValue = edittext.getText().toString();
              if(CheckForWord(EdittextValue)){
              Toast.makeText(getActivity(),
                                    "Correct Word " + EdittextValue ,
                                    Toast.LENGTH_LONG).show();
              // Do something here.
            }
           else{
             Toast.makeText(getActivity(),
                                    "Wrong Word " + EdittextValue ,
                                    Toast.LENGTH_LONG).show();
           }
           }
        });