如何一次设置x按钮以清除文本,第二次关闭SearchView Android?

问题描述 投票:1回答:2

我有此SearchView:

SearchView searchView = findViewById(R.id.search);

[我写了一些文字并按清除按钮后,该文字将被清除,如果再按一次,将关闭搜索。如果使用以下代码行:

ImageView clearButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
clearButton.setOnClickListener(v -> {
    searchView.setQuery("", false);
});

默认行为停止工作。我在按钮上设置了单击侦听器,它可以正常工作,但是如果再次按一下,则搜索不会像之前那样关闭。如何关闭第二个按钮的搜索?

java android onclicklistener searchview
2个回答
3
投票

使用setIconifiedtrue关闭SearchView

clearButton.setOnClickListener(v -> {
    if(searchView.getQuery().length() == 0) {
        searchView.setIconified(true);
    } else {
        searchView.setQuery("", false);
    }
});

0
投票
if (!searchView.isIconified()) {
    searchView.onActionViewCollapsed();
} else {
    super.onBackPressed();
}
© www.soinside.com 2019 - 2024. All rights reserved.