SearchView의 쿼리를 닫았다가 다시 열면 손실 됨

Bbrakenhoff

SearchView가있는 Fragment에서 작업 중입니다. SearchView를 닫았다가 다시 열면 입력 한 쿼리가 사라집니다.

문제는이 행동을 원하지 않는다는 것입니다. Google Play 스토어의 SearchView와 같은 동작을 원합니다. 쿼리를 닫고 열면 여전히 존재합니다.

searchable.xml이 없다는 사실과 관련이 있습니까?

피에르 앙투안 라파예트

문서에 따라 onCloseListener를 만들어야합니다.

리스너가 텍스트 필드를 지우고 닫는 기본 동작을 재정의하려면 true를 반환하고 그렇지 않으면 false를 반환합니다.

http://developer.android.com/reference/android/widget/SearchView.OnCloseListener.html#onClose () 참조

쿼리 TextView가 비어있는 경우에만 onCloseListener를 호출하는 것으로 보이는 SearchView의 소스 코드를 살펴본 후 이것이 제대로 작동하는지 확실하지 않습니다.

확인 SearchView.onCloseClicked을 () 무슨 일이 일어나고 있는지 확인합니다 :

   private void onCloseClicked() {
        CharSequence text = mQueryTextView.getText();
        if (TextUtils.isEmpty(text)) {
            if (mIconifiedByDefault) {
                // If the app doesn't override the close behavior
                if (mOnCloseListener == null || !mOnCloseListener.onClose()) {
                    // hide the keyboard and remove focus
                    clearFocus();
                    // collapse the search field
                    updateViewsVisibility(true);
                }
            }
        } else {
            mQueryTextView.setText("");
            mQueryTextView.requestFocus();
            setImeVisibility(true);
        }

    }

따라서 onCloseListener를 재정의해도 작동하지 않는 경우입니다.

SearchView는 공용이므로 클래스를 확장하고 onCloseClicked ()의 논리를 수정하거나 onActionViewExpanded / onActionViewCollapsed를 재정 의하여 쿼리 문자열을 복원하고 저장할 수 있습니다.

OnQueryTextListener에 쿼리를 저장 한 다음 onOptionsItemSelected에서 setQuery (savedQuery, false)를 호출 할 수도 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

덮개를 닫았다가 다시 열면 노트북이 자동으로 일시 중지됨

분류에서Dev

Ionic : 사이드 메뉴에서 현재 하위 상태를 다시로드하면 헤더가 손실 됨

분류에서Dev

실행 설정에서 XPage를 열면 스타일 시트 참조가 손상됨

분류에서Dev

키 / 값 쌍을 배열로 푸시하면 forloop에서 키가 손실 됨

분류에서Dev

페이지 변경시 Aspxgridview 명령 열의 값이 손실 됨

분류에서Dev

Raspberry Pi를 다시 시작하기 직전에 AJAX 응답이 손실 됨

분류에서Dev

하나의 하위에서 공용 개체 변수를 지연 바인딩하고 실행이 다음 하위로 이동하면 내용이 손실 됨

분류에서Dev

데이터베이스를 닫았다가 다시 열지 않으면 통합 쿼리가 새로 고쳐지지 않습니다.

분류에서Dev

NewtonSoft.Json의 JObject를 열거하면 C #에서 '\'문자가 손실됩니다.

분류에서Dev

Angular FormArray로 인해 다른 형식의 Formcontrol이 손실 됨

분류에서Dev

Javascript가 다른 변수에 할당되면 컨텍스트가 손실 됨

분류에서Dev

벡터의 열 이름이 손실 됨

분류에서Dev

30 분 후에 다시 열면 내 Android 앱의 영구 데이터가 손실됩니다.

분류에서Dev

TypeOrm으로 실행하면 원시 PostgreSQL 쿼리가 중단됨

분류에서Dev

JTextField를 채울 때 "다음 줄"형식이 손실 됨

분류에서Dev

Excel에서 C #의 SQL로 시트를 가져올 때 DateTime 열에서 시간이 손실됩니다.

분류에서Dev

노트북 덮개를 닫았다가 다시 열어야 화면이 켜집니다.

분류에서Dev

페이지를 새로 고치면 세션이 손실 됨 (다음, 반응, 동형)

분류에서Dev

약속의 RecurrenceInfo가 손실 됨

분류에서Dev

리베이스 후 코드 손실, 병합이 스쿼시 됨

분류에서Dev

AlertDialog를 통해 닫았다가 나중에 다시 열면 활동이 충돌 함

분류에서Dev

컴퓨터를 다시 시작한 후 Swift Url 책갈피 권한이 손실 됨

분류에서Dev

주기적으로 csv 파일을 닫았다가 다시 열어 메모리로드를 줄입니다.

분류에서Dev

Mule 3.5의 JMS 대기열에 파일을 푸시하면 파일 속성이 손실됩니다.

분류에서Dev

Firefox 텍스트 영역 자리 표시 자 텍스트가 손실 됨

분류에서Dev

드롭 다운의 PHP onchange = this.form.submit ()-> 첫 번째 값이 손실 됨

분류에서Dev

부분 페이지를 다시로드하면 세션이 손실됩니다.

분류에서Dev

React 후크를 사용할 때 MediaRecorder의 중간 데이터가 손실 됨

분류에서Dev

onCreate가 다시 호출되면 SharedPreferences가 손실됩니다.

Related 관련 기사

  1. 1

    덮개를 닫았다가 다시 열면 노트북이 자동으로 일시 중지됨

  2. 2

    Ionic : 사이드 메뉴에서 현재 하위 상태를 다시로드하면 헤더가 손실 됨

  3. 3

    실행 설정에서 XPage를 열면 스타일 시트 참조가 손상됨

  4. 4

    키 / 값 쌍을 배열로 푸시하면 forloop에서 키가 손실 됨

  5. 5

    페이지 변경시 Aspxgridview 명령 열의 값이 손실 됨

  6. 6

    Raspberry Pi를 다시 시작하기 직전에 AJAX 응답이 손실 됨

  7. 7

    하나의 하위에서 공용 개체 변수를 지연 바인딩하고 실행이 다음 하위로 이동하면 내용이 손실 됨

  8. 8

    데이터베이스를 닫았다가 다시 열지 않으면 통합 쿼리가 새로 고쳐지지 않습니다.

  9. 9

    NewtonSoft.Json의 JObject를 열거하면 C #에서 '\'문자가 손실됩니다.

  10. 10

    Angular FormArray로 인해 다른 형식의 Formcontrol이 손실 됨

  11. 11

    Javascript가 다른 변수에 할당되면 컨텍스트가 손실 됨

  12. 12

    벡터의 열 이름이 손실 됨

  13. 13

    30 분 후에 다시 열면 내 Android 앱의 영구 데이터가 손실됩니다.

  14. 14

    TypeOrm으로 실행하면 원시 PostgreSQL 쿼리가 중단됨

  15. 15

    JTextField를 채울 때 "다음 줄"형식이 손실 됨

  16. 16

    Excel에서 C #의 SQL로 시트를 가져올 때 DateTime 열에서 시간이 손실됩니다.

  17. 17

    노트북 덮개를 닫았다가 다시 열어야 화면이 켜집니다.

  18. 18

    페이지를 새로 고치면 세션이 손실 됨 (다음, 반응, 동형)

  19. 19

    약속의 RecurrenceInfo가 손실 됨

  20. 20

    리베이스 후 코드 손실, 병합이 스쿼시 됨

  21. 21

    AlertDialog를 통해 닫았다가 나중에 다시 열면 활동이 충돌 함

  22. 22

    컴퓨터를 다시 시작한 후 Swift Url 책갈피 권한이 손실 됨

  23. 23

    주기적으로 csv 파일을 닫았다가 다시 열어 메모리로드를 줄입니다.

  24. 24

    Mule 3.5의 JMS 대기열에 파일을 푸시하면 파일 속성이 손실됩니다.

  25. 25

    Firefox 텍스트 영역 자리 표시 자 텍스트가 손실 됨

  26. 26

    드롭 다운의 PHP onchange = this.form.submit ()-> 첫 번째 값이 손실 됨

  27. 27

    부분 페이지를 다시로드하면 세션이 손실됩니다.

  28. 28

    React 후크를 사용할 때 MediaRecorder의 중간 데이터가 손실 됨

  29. 29

    onCreate가 다시 호출되면 SharedPreferences가 손실됩니다.

뜨겁다태그

보관