在定义EditText
时,我对inputType text
的{{1}}有疑问,如下所示:
EditText
此处<EditText
android:id="@+id/text_name"
android:inputType="text"
android:text="some txt"
.
.
./>
为inputType
,文字值为text
,其中包含拼写错误的字词&#34; txt&#34; 。此EditText包含在一个显示为弹出窗口的布局中。
现在当某个"some txt"
点击了Button
并且这个布局加速时, txt 这个词被加下划线为一个错误的单词,当聚焦于任何其他键盘Activity
中的单词正常显示且没有任何错误发生,但是当对焦于拼写错误的单词 txt 时,应用程序会崩溃并出现以下异常:
EditText
要解决此问题,我必须将11-09 16:50:02.126: W/dalvikvm(5205): threadid=1: thread exiting with uncaught exception (group=0x40ffc9a8)
11-09 16:50:02.127: W/System.err(5205): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41656d18 is not valid; is your activity running?
11-09 16:50:02.127: W/System.err(5205): at android.view.ViewRootImpl.setView(ViewRootImpl.java:646)
11-09 16:50:02.127: W/System.err(5205): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
11-09 16:50:02.127: W/System.err(5205): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
11-09 16:50:02.127: W/System.err(5205): at android.widget.PopupWindow.invokePopup(PopupWindow.java:993)
11-09 16:50:02.127: W/System.err(5205): at android.widget.PopupWindow.showAtLocation(PopupWindow.java:847)
11-09 16:50:02.128: W/System.err(5205): at android.widget.PopupWindow.showAtLocation(PopupWindow.java:811)
11-09 16:50:02.128: W/System.err(5205): at android.widget.Editor$PinnedPopupWindow.updatePosition(Editor.java:2207)
11-09 16:50:02.128: W/System.err(5205): at android.widget.Editor$PinnedPopupWindow.show(Editor.java:2164)
11-09 16:50:02.128: W/System.err(5205): at android.widget.Editor$SuggestionsPopupWindow.show(Editor.java:2406)
11-09 16:50:02.128: W/System.err(5205): at android.widget.Editor.showSuggestions(Editor.java:1700)
11-09 16:50:02.128: W/System.err(5205): at android.widget.Editor$1.run(Editor.java:1599)
11-09 16:50:02.128: W/System.err(5205): at android.os.Handler.handleCallback(Handler.java:725)
11-09 16:50:02.129: W/System.err(5205): at android.os.Handler.dispatchMessage(Handler.java:92)
11-09 16:50:02.129: W/System.err(5205): at android.os.Looper.loop(Looper.java:153)
11-09 16:50:02.129: W/System.err(5205): at android.app.ActivityThread.main(ActivityThread.java:5299)
11-09 16:50:02.129: W/System.err(5205): at java.lang.reflect.Method.invokeNative(Native Method)
11-09 16:50:02.130: W/System.err(5205): at java.lang.reflect.Method.invoke(Method.java:511)
11-09 16:50:02.133: W/System.err(5205): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
11-09 16:50:02.134: W/System.err(5205): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
11-09 16:50:02.134: W/System.err(5205): at dalvik.system.NativeStart.main(Native Method)
中的inputType
更改为EditText
。
那么,为什么会出现这个问题呢?以及如何使用textNoSuggestions
作为inputType
并处理拼写错误的单词而没有任何问题?
这就是我以编程方式处理它的方式:
text
答案 0 :(得分:0)
我通过更改文字的inputType
解决了这个问题,而不是text
我将其更改为textNoSuggestions
,即使输入的字词是否正确,也无法查看因此,在聚焦时应用程序不会崩溃。
因此,文本将定义为:
<EditText
android:id="@+id/text_name"
android:inputType="textNoSuggestions"
android:text="some txt"
.
.
./>