我在操作栏中有一个搜索 View ,我想在方向更改后恢复查询。我怎样才能做到这一点?使用SearchView.setQuery(query, false);从包中设置查询不起作用,因为searchview扩展后会立即将其查询设置为""

这是我的onActivityCreated中的相关代码:

if(savedInstanceState != null && savedInstanceState.containsKey(BUNDLE_KEY_SEARCH))
    mCurFilter = savedInstanceState.getString(BUNDLE_KEY_SEARCH);

这是我的onSaveInstanceState:
savedInstanceState.putString(BUNDLE_KEY_SEARCH, mCurFilter);
super.onSaveInstanceState(savedInstanceState);

那么,如何使用setQuery无法恢复它的状态呢?
谢谢大家

最佳答案

解决方法是,更换您的

mSearchView.setQuery(mSearchText, false);

和:
final String s = mSearchText;

mSearchView.post(new Runnable() {

    @Override
    public void run() {
        mSearchView.setQuery(s, false);
    }
});

系统设置空字符串后,它将设置保存的字符串。

关于java - 恢复android的搜索 View 小部件的状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22582201/

10-12 06:10