【问题标题】:Android Edittext: when contains misspelling word (with red underline over it), do not allow to submitAndroid Edittext:当包含拼写错误的单词(带有红色下划线)时,不允许提交
【发布时间】:2014-10-03 03:02:05
【问题描述】:

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

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

【问题讨论】:

标签: android android-edittext misspelling


【解决方案1】:

按照此链接中的步骤创建拼写检查器。 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?

【讨论】:

    【解决方案2】:

    您必须做的是实现拼写检查会话侦听器。 也许您可以将拼写检查侦听器与文本观察器一起使用。

    SpellCheckListener

    【讨论】:

      【解决方案3】:

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

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

      然后在提交按钮上点击

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-19
        • 2020-03-24
        • 2013-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多