web-dev-qa-db-ja.com

Kotlin、searchViewの送信を取得する方法

SearchViewがあります

<SearchView
Android:id="@+id/searchBar"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:visibility="visible"/>

送信ボタンが押されたときにカスタムアクションを追加したい。

しかし、私が得ることができるすべては

searchBar.setOnSearchClickListener {
  //do some stuff
}

私が見つけたすべての情報は古く、kotlin langからではありません。

キーボードの検索アイコンがテープで記録されているときにアクションのトリガーを取得するにはどうすればよいですか?

6
Bozzo

これを試してください:

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.main, menu)

    val searchItem = menu.findItem(R.id.search_city)
    searchView = searchItem.actionView as SearchView
    searchView.setQueryHint("Search View Hint")

    searchView.setOnQueryTextListener(object : OnQueryTextListener {

        override fun onQueryTextChange(newText: String): Boolean {
            return false
        }

        override fun onQueryTextSubmit(query: String): Boolean {
            // task HERE
            return false
        }

    })

    return true
}

応答リンク: キーボードイベントを聞く

19
Maurice