[android] Android SearchView 텍스트를 변경하는 방법
SearchView에 대한 setText () 메서드가 있습니까? 이와 같이 searchView에서 검색 텍스트를 설정하려고 시도했지만 이와 같은 방법은 없습니다.
searchView.setText(searchToken);
답변
궁금해하고 시도한 후 setQuery ()라는 API에 searchView 텍스트를 설정하고 검색을 제출하거나 부울 매개 변수를 사용하지 않도록 선택할 수있는 메서드가 있음을 발견했습니다.
searchView.setQuery(searchToken, false);
답변
setQuery()
텍스트 상자의 텍스트를 변경하는 데 사용할 수 있습니다 .
그러나 setQuery()
메서드는 검색보기의 포커스 상태를 트리거하므로이 메서드가 호출 된 후 키보드가 화면에 표시됩니다.
이 문제를 해결하려면 searchView.clearFocus()
after setQuery()
메서드를 호출 하여 포커스를 해제하면 키보드가 화면에 표시되지 않습니다.
예:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
답변
사전 파일을 원하는 경우 SearchView
일부 텍스트 searchView.setQuery(text, false)
가 상자에서 작동하지 않습니다. 그 이유는 SearchView
확장 될 때
searchView.onActionViewExpanded()
searchView.setText("")
우리가 설정 한 모든 텍스트 를 호출 하고 지 웁니다.
해결책은 확장 리스너를 설정하고 확장되면 사전 파일 텍스트를 설정하는 것 SearchView
입니다.
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
}
답변
이것은 나를 위해 일한 것입니다
MenuItem sItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) sItem.getActionView();
sItem.expandActionView();
searchView.setQuery("your text", false);
답변
searchView를 확장하고 사용자가 x (닫기)를 탭한 후 아이콘으로 다시 축소 할 수있는 경우 방법은 다음과 같습니다.
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.
참고 : 다음을 사용하여 확장하는 경우 :
searchView.onActionViewExpanded()
사용자가 x (닫기)를 탭한 후 searchView가 축소되지 않습니다.