2013-02-05 31 views
1

测试设备:GSM的Galaxy Nexus 4.2SPAN_EXCLUSIVE_EXCLUSIVE跨度不能有一个零长度误差每当EDITTEXT变空

在我的应用程序创建的对话(与两个内置键盘和swiftkey 3测试),以提示用户进行输入。该对话框显示,用户应该填一个字一个EditText在创建时,以及当用户将擦除的EditText我在logcat中收到以下错误消息的一切:

SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 

谷歌搜索以及如在计算器上搜索这里告诉我,可以用的东西来避免错误,如

inputBox.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

其中输入框是EditText上有问题。然而,我想保持自动完成功能,因为用户应该填写最有可能自动完成的单词。这里所使用的代码创建对话框:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
final EditText inputBox = new EditText(this); 
inputBox.setHint("New keyword"); 
builder.setTitle(R.string.add_keyword_dialogue_header) 
     .setView(inputBox) 
     .setPositiveButton("Add", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id { 
          mListAdapter.addItem(inputBox.getText() 
            .toString()); 
         } 
        }) 
      .setNegativeButton("Cancel", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, 
           int which) { 
         } 
        }); 
    final AlertDialog dialog = builder.create(); 
    dialog.getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
    dialog.show(); 
    inputBox.requestFocus(); 

我的问题是,我怎么能防止错误存在的同时保留了自动完成功能?

回答

0

我从来没有看到具体的错误之前,但我的猜测是,它的这条线,导致它:

dialog.getWindow().setSoftInputMode(
     WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 

这应该打开,即使不集中编辑框的软键盘。所以输入连接没有正确设置,使键盘的功能有限。首先设定焦点可能会有所帮助。因此,如果不使用always-it,可能会使用LayoutParams.SOFT_INPUT_STATE_VISIBLE,由于没有绑定到编辑器,可能会阻止键盘输入错误。

+0

我试过了你的建议,错误信息仍然产生。即使将整行注释掉logcat仍然显示相同的错误。 – ntlv

+0

它只是默认的键盘发生,还是其他键盘也这样做?这听起来像是一个默认的键盘错误。在这种情况下,答案可能与日志消息一起存在。 –

+0

它与默认键盘和Swiftkey 3一起发生。还有一些Google搜索引导了我: http://support.swiftkey.net/forums/116693-2-swiftkey-bugs-/suggestions/2994580-span- exclusive-exclusive-span-can-have-a-zero- 我无法找到任何类似的缺省键盘报告。 – ntlv

1

就在这个属性添加到您的EditText和你的问题一定会得到解决

android:inputType="textNoSuggestions" 

上面的属性添加到您的每个编辑文本的应用程序中使用,或者干脆你在哪里得到的错误在编辑纯文本。

+2

Android文档似乎暗示这会关闭自动完成功能。我的问题是如何解决错误,同时保留自动完成功能。 – ntlv

相关问题