测试设备:GSM Galaxy nexus 4.2(使用内置键盘和 swiftkey 3 测试)
在我的应用程序中,我创建了一个对话框来提示用户输入。该对话框显示一个用户应该填写一个单词的 EditText。创建时,以及每当用户从 EditText 中删除所有内容时,我都会在 logcat 中收到以下错误消息:
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
谷歌搜索以及在stackOverflow上搜索告诉我可以通过使用类似的东西来避免错误
inputBox.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
其中 inputBox 是有问题的 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();
我的问题是,如何在保留自动完成功能的同时防止错误发生?