Apakah ada metode setText () untuk SearchView atau sesuatu seperti itu? Saya mencoba mengatur teks pencarian di SearchView seperti ini tetapi tidak ada metode untuk seperti ini.
searchView.setText(searchToken);
Apakah ada metode setText () untuk SearchView atau sesuatu seperti itu? Saya mencoba mengatur teks pencarian di SearchView seperti ini tetapi tidak ada metode untuk seperti ini.
searchView.setText(searchToken);
Jawaban:
Setelah bertanya-tanya dan mencoba, saya menemukan bahwa ada metode dalam API bernama setQuery () yang Anda setel teks searchView dan Anda dapat memilih untuk mengirimkan pencarian atau tidak menggunakan parameter boolean.
searchView.setQuery(searchToken, false);
true
agar kueri dieksekusi juga, tetapi perhatikan bahwa meskipun kueri dijalankan dengan baik, kotak teks tetap kosong, sampai ketika diberi fokus secara manual. Bagaimana saya memastikan nilai setel otomatis ditampilkan secara otomatis juga?
Anda dapat menggunakan setQuery()
untuk mengubah teks di kotak teks.
Namun, setQuery()
metode memicu status fokus tampilan penelusuran, sehingga keyboard akan muncul di layar setelah metode ini dipanggil.
Untuk memperbaiki masalah ini, panggil saja searchView.clearFocus()
setelah setQuery()
metode untuk tidak fokus dan keyboard tidak akan muncul di layar.
Contoh:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
Jika Anda ingin pre-fil Anda SearchView
dengan beberapa teks searchView.setQuery(text, false)
tidak akan bekerja di luar kotak. alasannya adalah saat SearchView
diperluas
searchView.onActionViewExpanded()
panggil panggilan mana searchView.setText("")
dan hapus teks apa pun yang telah kami tetapkan.
Solusinya adalah mengatur Perluas pendengar dan mengatur teks pra-file setelah SearchView
diperluas
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.main, menu)
val searchView = menu.findItem(R.id.action_search).actionView as SearchView
menu.findItem(R.id.action_search).setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
// it is important to call this before we set our own query text.
searchView.onActionViewExpanded()
searchView.setQuery("Prefil Text", false)
return true
}
override fun onMenuItemActionCollapse(item: MenuItem?) = true
})
return true
}
Jika Anda ingin searchView diperluas dan dapat menyusut kembali menjadi ikon setelah pengguna mengetuk x (tutup), caranya adalah:
searchView.isIconified = false // Expand it
searchView.setQuery("your text here", false) // true if you want to submit, otherwise false
searchView.clearFocus() // so the keyboard is not show up.
CATATAN: Jika Anda mengembangkannya menggunakan:
searchView.onActionViewExpanded()
searchView tidak akan menyusut kembali setelah pengguna mengetuk x (tutup)