我在我的应用中使用了带有操作栏和片段的searchview。 searchview以portrate模式打开,当我们更改方向时,它会关闭。如果searchview中存在任何文本,它将不会在方向chnage上关闭。即使搜索视图为空,我也想保留关于方向更改的searchview状态。我怎么能这样做?我试过了
setRetainInstance(true);
但它不起作用。请帮帮我。
答案 0 :(得分:2)
我自己实现了它,因为Android似乎没有为我保存它。
final String s = savedSearchString;
if (s != null) {
searchViewMenuItem.expandActionView(); // opens the action view
}
searchView.post(new Runnable() {
@Override
public void run() {
searchView.setQuery(s, false); // sets the last search string on the view
}
});
' savedSearchString'来自savedInstanceState。确保在""上设置搜索窗口的初始内容。而不是null(默认),否则它不会重新打开一个空窗口。
答案 1 :(得分:0)
您可以创建一个布尔值。 当你打开searchView时,你将boolean设置为true。 当你关闭searchView时,你会把布尔值设为false。
在onCreate中,如果boolean = true,则打开searchView。
final SearchView searchView = (SearchView) itemSearch.getActionView();
searchView.setQueryHint(Html
.fromHtml("<font color = #ffffff>Search...</font>"));
searchView.setOnSearchClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//your code
}
});