SearchViewの使い方のメモ
・参考動画
https://www.youtube.com/watch?v=vqh6TPLQ5-Q
・search.xml (res/menu/search.xml)
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://shemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_search"
android:icon="@drawable/ic_search"
android:title="search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
</menu>
・FirstFragment.kt
class FirstFragment: Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_first, container, false)
setHasOptionsMenu(true)
return view
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.search, menu)
val searchItem = menu.findItem(R.id.menu_search)
if (searchItem != null) {
val searchView = searchItem.actionView as SearchView
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextViewListener {
override fun onQueryTextSubmit(query: String?): Boolean {
return true
}
override fun onQueryTextChange(newText: String?): Boolean {
return true
}
})
}
}
}
・onQueryTextSubmit
ユーザが検索ボタンをクリックした時に呼ばれるメソッド。
・onQueryTextChange
検索欄に入力される文字列が変更された時に呼ばれるメソッド。リアルタイムで更新していく