Android開發 EditText按回車按鍵后出現 focus search returned a view that wasn't able to take focus! 錯誤


問題描述

  將EditText這個View成為了ListView或者RecyclerView的item時,在按輸入法的回車/下一步/next時會出現的 focus search returned a view that wasn't able to take focus!的報錯. 

 

問題原因

  因為在按下回車鍵后,焦點會自動切換到下一個EditText上.這個時候如果你隱藏或者本身未加載下一個EditText.就出現這個報錯. 報錯的意思就是我的焦點目標丟失了,找不到下一個EditText.

 

解決辦法

第一種:

  在EditText屬性里設置 android:imeOptions="actionUnspecified" . imeOptions就是控制回車鍵具體作用的屬性

<EditText
        android:id="@+id/title_content"
        android:layout_width="0dp"
        android:layout_height="60dp"
        android:hint="請輸入標題"
        android:singleLine="true"
        android:maxLength="20"
        android:inputType="text"
        android:imeOptions="actionUnspecified"
        app:layout_constraintTop_toBottomOf="@id/cover_barrier"
        app:layout_constraintLeft_toRightOf="@id/title"
        app:layout_constraintRight_toRightOf="parent"/>

  如果actionUnspecified屬性設置后依然會報錯,你可以嘗試另外一個屬性actionNone

第二種:

  這種辦法就是監聽編輯器操作,然后將回車操作寫成自己需要的功能(將回車鍵或者其他鍵值取代成自己想要實現的邏輯).或者直接不寫... 這種方式比較簡單暴力

            mEditView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    return true;
                }
            });

注意需要返回 true 表示你已經處理過這個事件了.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM