【Android/Kotlin】SearchView(검색바)와 조금 사이 좋게 되어 입력 문자열을 취득할 수 있게 되었다
개요
Android 앱에서 목록 내 검색 기능을 구현하고 싶었지만 검색 바와는 면식이 없었다.
그래서 검색바와 조금 놀아 기본적인 사용법을 알았다. 설치 방법이나, 입력한 캐릭터 라인을 취득할 때에 사용할 수 있는 것 같은 메소드를 비망록적으로 정리한다.

화면에 검색바 설치
xml
에 SearchView 를 기술하면 검색 UI를 설치할 수 있다.
<SearchView
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
android:queryHint="検索" />
iconifiedByDefault
를 false
로 하여 항상 검색 입력란이 표시되어 있는 상태로 한다. 디폴트는 true
로, true
의 경우 평시는 아이콘만 표시되어 아이콘을 클릭하면 검색 바가 나온다. 예를 들어 앱바에 설치하는 경우 등은 true
로 하면 좋을 것이다.
iconifiedByDefault: false

iconifiedByDefault: true

또한, queryHint
에 힌트 캐릭터 라인을 설정해 두면, 미입력 상태의 검색 바에 힌트가 표시된다.
입력된 문자열 검색
setOnQueryTextListener()
「입력란의 문자열이 바뀌었을 때」와 「검색 버튼을 눌렀을 때」의 이벤트 리스너를 세트한다.
SearchView.OnQueryTextListener
xml
에 SearchView 를 기술하면 검색 UI를 설치할 수 있다.<SearchView
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
android:queryHint="検索" />
iconifiedByDefault
를 false
로 하여 항상 검색 입력란이 표시되어 있는 상태로 한다. 디폴트는 true
로, true
의 경우 평시는 아이콘만 표시되어 아이콘을 클릭하면 검색 바가 나온다. 예를 들어 앱바에 설치하는 경우 등은 true
로 하면 좋을 것이다.iconifiedByDefault: false

iconifiedByDefault: true

또한,
queryHint
에 힌트 캐릭터 라인을 설정해 두면, 미입력 상태의 검색 바에 힌트가 표시된다.입력된 문자열 검색
setOnQueryTextListener()
「입력란의 문자열이 바뀌었을 때」와 「검색 버튼을 눌렀을 때」의 이벤트 리스너를 세트한다.
SearchView.OnQueryTextListener
onQueryTextChange(newText: String): Boolean
사용자가 문자열을 변경할 때 호출됩니다(단일 문자 또는 예측 변환 단위 단위).newText
는 그 때 입력되고 있는 캐릭터 라인. onQueryTextSubmit(query: String): Boolean
사용자가 쿼리를 보낼 때 (검색 버튼을 클릭) 호출됩니다.query
는 전송된 문자열입니다. 예를 들어, 검색 결과를 실시간으로 표시하고 싶은 경우는
onQueryTextChange()
에 검색 버튼을 누를 때에 검색 결과를 표시한다(이쪽은 거의 100% 한다고 생각하지만) 좋아.searchBar.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextChange(newText: String): Boolean {
// text changed
return false
}
override fun onQueryTextSubmit(query: String): Boolean {
// submit button pressed
return false
}
})
검색 버튼
문자열을 확정시켰을 때는 Return 버튼이 검색 버튼이 된다.

또한, onQueryTextSubmit()에서 검색 바의 입력란의 가장자리에 검색 버튼을 표시할지 여부 (진위 값)를 설정할 수 있으며,
setSubmitButtonEnabled()
에서 검색 버튼이 표시됩니다.
true
「검색바의 포커스가 바뀌었을 때」의 이벤트 청취자를 세트 한다.
setOnQueryTextFocusChangeListener()
View.OnFocusChangeListener
뷰의 포커스 상태가 바뀌었을 때에 불린다. 예를 들면, 검색 바에 포커스가 닿을 때만 검색 취소 버튼을 표시하고, 검색 바 이외에 포커스가 이동했을 때 입력란을 리셋하는 등의 사용법이 가능하다.
onFocusChange(v: View, hasFocus: Boolean)
현재 입력되고 있는 캐릭터 라인을 취득한다.
예를 들어, 독자적으로 설치된 버튼을 누를 때 입력 된 문자열을 얻는 방법을 사용할 수 있습니다.
요약
getQuery()
를 기술하면 검색바를 설치할 수 있다. 이 때, 바 표시로 하기 위해서 SearchView
를 iconifiedByDefault
로 한다. false
로 setOnQueryTextListener()
OnQueryTextListener
로 setOnQueryTextFocusChangeListener()
Reference
이 문제에 관하여(【Android/Kotlin】SearchView(검색바)와 조금 사이 좋게 되어 입력 문자열을 취득할 수 있게 되었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mmmmk/items/55286caa8539fe661f66텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)