[英]android.support.v7.widget.SearchView setQueryHint?
[英]Android: how do I get SearchView close button to return the setQueryHint()?
我的工具栏中有一个搜索图标,用于搜索 RecyclerView 列表。
图1:
单击该图标时,工具栏会显示 SearchView 的 setQueryHint “Search here...”。
图2:
当在 SearchView 行上输入一个字符时,在这种情况下是数字“4”,然后在 RecyclerView 列表中搜索它。 如果未找到该字符,则会在该字符的右侧出现一个关闭按钮“x”:
图3:
我的问题是,单击关闭按钮“x”时的默认行为是关闭 SearchView,它将视图返回到 Pic 1,即初始图标视图。 我想让视图返回到 SearchView 行“在此处搜索...”,即图 2。我尝试在 mCloseButton.OnClickListener 中的 SearchView 上使用 setQueryHint,但它不起作用。 请参阅下面 mCloseButton OnClickListener() 中的 ** 以了解我尝试过但不起作用的其他片段。 我在这里缺少什么?
menu.xml
<item android:id="@+id/action_search"
android:title="@string/search_title"
android:icon="@drawable/ic_action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView" />
Activity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.cardview_menu, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
if (adapter == null || adapter.getItemCount() == 0) {
searchItem.setVisible(false);
} else {
searchItem.setVisible(true);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
final EditText mSearchEditText = (EditText)mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
final ImageView mCloseButton = (ImageView) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
mSearchView.setQueryHint(" Search here...");
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true; // Return true to expand action view
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
adapter.clear();
adapter.addAll(allList);
return true; // Return true to collapse action view
}
});
mCloseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Clear the query
mSearchView.setQuery("",false);
// below lines were all tried and do not work
**mSearchView.setQueryHint(" Search here...");**
**mSearchView.setIconified(false);**
**mSearchView.onActionViewCollapsed);**
**MenuItemCompat.expandActionView(searchitem);**
adapter.clear();
adapter.addAll(allList);
}
});
...
return super.onCreateOptionsMenu(menu);
}
尝试使用 mSearchView.setIconified(false)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.