我有一个EditText在我的片段中,当我执行输入或任何计数就像输入行为,我想要做的事情。但我有一些问题的KeyEvent
或actionId
的onEditorAction
IDS所以我按照这个网站的其他线程,可以帮助我很多关于很多事情要做到这一点:onEditorAction的奇怪的错误:“无匹配的一对setHasTransientState调用”
inputSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView exampleView, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
actionId == EditorInfo.IME_ACTION_DONE ||
event.getAction() == KeyEvent.ACTION_DOWN &&
event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
//do something
}
return true;
}
});
但是当我做这一切的这种情况下,我的应用程序崩溃和输出我这个在logcat中:
05-05 15:56:05.195: E/View(26569): hasTransientState decremented below 0: unmatched pair of setHasTransientState calls
05-05 15:56:05.195: W/dalvikvm(26569): threadid=1: thread exiting with uncaught exception (group=0x417fde48)
05-05 15:56:05.195: E/AndroidRuntime(26569): FATAL EXCEPTION: main
05-05 15:56:05.195: E/AndroidRuntime(26569): Process: com.myapp PID: 26569
05-05 15:56:05.195: E/AndroidRuntime(26569): java.lang.NullPointerException
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.myapp.SomeFragment$3.onEditorAction(SomeFragment.java:148)
05-05 15:56:05.195: E/AndroidRuntime(26569): at android.widget.TextView.onEditorAction(TextView.java:4395)
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138)
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:297)
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
05-05 15:56:05.195: E/AndroidRuntime(26569): at android.os.Handler.dispatchMessage(Handler.java:102)
05-05 15:56:05.195: E/AndroidRuntime(26569): at android.os.Looper.loop(Looper.java:136)
05-05 15:56:05.195: E/AndroidRuntime(26569): at android.app.ActivityThread.main(ActivityThread.java:5105)
05-05 15:56:05.195: E/AndroidRuntime(26569): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 15:56:05.195: E/AndroidRuntime(26569): at java.lang.reflect.Method.invoke(Method.java:515)
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
05-05 15:56:05.195: E/AndroidRuntime(26569): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
05-05 15:56:05.195: E/AndroidRuntime(26569): at dalvik.system.NativeStart.main(Native Method)
当我只保留actionId == EditorInfo.IME_ACTION_DONE
的条件下,应用程序不会崩溃,但没有做任何事情,和logcat的输出只有这个:
05-05 15:56:05.195: E/View(26569): hasTransientState decremented below 0: unmatched pair of setHasTransientState calls
我在Google上搜索过,但没有发现一些令我信服的奇怪错误。 对于我和其他人谁也许将要面对同样的问题,我想就这一个:)
我得到了相同的错误消息(“无法比拟的对...”)在一个完全不同的上下文 我完全在(已在adapter.getView()设置convertView.setTransientState(真/假))损失什么方法设置/获得布尔实际增量或减量。 – mathheadinclouds
当我使用EditText或AutoCompleteTextView字段时,在日志中看到“E/View:hasTransientState减少到0以下:不匹配的一对setHasTransientState调用”错误,在我的代码中没有对setTransientState()或类似的调用。该应用程序不会因这些错误而崩溃,并且从用户的角度来看似乎很好。这些似乎是SDK的内部错误。 – jk7