我的应用程序中有许多布局TextView用于显示从后端获取的一些句子。问题是,有时要显示的文本包含一些英文词典中没有的词,所以我在这些词下方有一个红色下划线。这看起来很糟糕。我看过其他关于相同的 SO 帖子,人们建议使用:
android:inputType="textNoSuggestion"
Run Code Online (Sandbox Code Playgroud)
在 .xml 中TextView。但是,我从 Android Studio 收到一条警告,即 inputType 只能用于输入EditText或其他类似的视图,我想这是正确的。
那么,是否有任何TextView特定属性可用于禁用拼写检查?是否有任何全局设置我可以放在禁用拼写检查的应用程序中,因为TextView使用某些属性重构每个设置似乎需要做很多工作。
我在我的应用程序中使用TextInputLayoutandTextInputEditText以及android:inputType="textAutoComplete"and 我不允许两个单词之间有空格,因此如果我在自动完成下拉列表或拼写检查中选择带有空格的项目,我会遇到IndexOutOfBoundsException:
java.lang.IndexOutOfBoundsException: setSpan (0 ... 8) ends beyond length 7
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
at android.widget.TextView.setSpan_internal(TextView.java:9900)
at android.widget.Editor.replaceWithSuggestion(Editor.java:2654)
at android.widget.Editor.-wrap18(Editor.java)
at android.widget.Editor$SuggestionsPopupWindow.onItemClick(Editor.java:3638)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1156)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3121)
at android.widget.AbsListView$3.run(AbsListView.java:4036)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我使用TextWatcher:
private final TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override …Run Code Online (Sandbox Code Playgroud)