我有一個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