2014-05-05 48 views
2

我有一個EditText在我的片段中,當我執行輸入或任何計數就像輸入行爲,我想要做的事情。但我有一些問題的KeyEventactionIdonEditorAction 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上搜索過,但沒有發現一些令我信服的奇怪錯誤。 對於我和其他人誰也許將要面對同樣的問題,我想就這一個:)

回答

0

一些幫助由於您的例外是:

hasTransientState decremented below 0: unmatched pair of setHasTransientState calls 
TextView

,使用的方法

android:imeOptions

android:imeActionId

+0

我得到了相同的錯誤消息(「無法比擬的對...」)在一個完全不同的上下文 我完全在(已在adapter.getView()設置convertView.setTransientState(真/假))損失什麼方法設置/獲得布爾實際增量或減量。 – mathheadinclouds

+0

當我使用EditText或AutoCompleteTextView字段時,在日誌中看到「E/View:hasTransientState減少到0以下:不匹配的一對setHasTransientState調用」錯誤,在我的代碼中沒有對setTransientState()或類似的調用。該應用程序不會因這些錯誤而崩潰,並且從用戶的角度來看似乎很好。這些似乎是SDK的內部錯誤。 – jk7