Có một phương thức setText () cho SearchView hoặc một cái gì đó tương tự không? Tôi cố gắng đặt văn bản tìm kiếm trong searchView như thế này nhưng không có phương pháp nào cho việc này.
searchView.setText(searchToken);
Có một phương thức setText () cho SearchView hoặc một cái gì đó tương tự không? Tôi cố gắng đặt văn bản tìm kiếm trong searchView như thế này nhưng không có phương pháp nào cho việc này.
searchView.setText(searchToken);
Sau khi tự hỏi và thử tôi đã phát hiện ra rằng có một phương thức trong API có tên setQuery () mà bạn đặt văn bản searchView và bạn có thể chọn gửi tìm kiếm hoặc không sử dụng tham số boolean.
searchView.setQuery(searchToken, false);
Bạn có thể sử dụng setQuery()
để thay đổi văn bản trong hộp văn bản.
Tuy nhiên, setQuery()
phương thức kích hoạt trạng thái tiêu điểm của chế độ xem tìm kiếm, do đó bàn phím sẽ hiển thị trên màn hình sau khi phương thức này được gọi.
Để khắc phục sự cố này, chỉ cần gọi searchView.clearFocus()
theo setQuery()
phương thức để không tập trung vào nó và bàn phím sẽ không hiển thị trên màn hình.
Thí dụ:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
Nếu bạn muốn quay trước SearchView
với một số văn bản searchView.setQuery(text, false)
sẽ không hoạt động. Lý do là khi SearchView
được mở rộng
searchView.onActionViewExpanded()
được gọi mà gọi searchView.setText("")
và xóa bất kỳ văn bản chúng tôi đã thiết lập.
Giải pháp là đặt trình nghe Mở rộng và đặt văn bản trước khi quay SearchView
được mở rộng
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
}
Đây là những gì làm việc cho tôi
MenuItem sItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) sItem.getActionView();
sItem.expandActionView();
searchView.setQuery("your text", false);