[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가 축소되지 않습니다.


답변