【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.)