如何设置 x 按钮一次清除文本,第二次关闭 SearchView Android?
How to set x button once to clear text and second to close SearchView Android?
我有这个 SearchView:
SearchView searchView = findViewById(R.id.search);
一旦我写了一些文本并按下清除按钮,文本就会被清除,如果我再次按下,搜索就会关闭。如果使用下面的代码行:
ImageView clearButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
clearButton.setOnClickListener(v -> {
searchView.setQuery("", false);
});
默认行为停止工作。我在按钮上设置了点击侦听器,它工作正常,但如果我再次按下,搜索不会像之前那样关闭。如何在第二次单击按钮时关闭搜索?
使用setIconified
到true
关闭SearchView
clearButton.setOnClickListener(v -> {
if(searchView.getQuery().length() == 0) {
searchView.setIconified(true);
} else {
searchView.setQuery("", false);
}
});
if (!searchView.isIconified()) {
searchView.onActionViewCollapsed();
} else {
super.onBackPressed();
}
我有这个 SearchView:
SearchView searchView = findViewById(R.id.search);
一旦我写了一些文本并按下清除按钮,文本就会被清除,如果我再次按下,搜索就会关闭。如果使用下面的代码行:
ImageView clearButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
clearButton.setOnClickListener(v -> {
searchView.setQuery("", false);
});
默认行为停止工作。我在按钮上设置了点击侦听器,它工作正常,但如果我再次按下,搜索不会像之前那样关闭。如何在第二次单击按钮时关闭搜索?
使用setIconified
到true
关闭SearchView
clearButton.setOnClickListener(v -> {
if(searchView.getQuery().length() == 0) {
searchView.setIconified(true);
} else {
searchView.setQuery("", false);
}
});
if (!searchView.isIconified()) {
searchView.onActionViewCollapsed();
} else {
super.onBackPressed();
}