防止SearchView崩溃

时间:2012-10-26 10:54:32

标签: java android

我的操作栏中有一个SearchView。当用户搜索时,我调用AsyncTask开始获取数据,但在重新调整数据后,SearchView会崩溃。

这是我创建搜索小部件的代码:

public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.search, menu);

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

    if (this.objAdapter == null) {
        searchView.setIconified(false);
        searchView.requestFocusFromTouch();
    }

    return true;

}

我要阻止用户折叠SearchView。我的搜索字符串始终可见。

我该怎么做?

3 个答案:

答案 0 :(得分:4)

使用search view example

对于您的情况,请使用Action Flag- SHOW_AS_ACTION_WITH_TEXT

希望它有所帮助!

答案 1 :(得分:0)

在SearchView实例上,您需要调用:

searchView.setIconified(false)
searchView.setOnCloseListener(new SearchView.OnCloseListener {
  @Override
  public boolean onClose() {
    return true; //returning true will stop search view from collapsing
  }
})

答案 2 :(得分:-1)

iconifiedByDefault属性设置为falsehttp://developer.android.com/reference/android/widget/SearchView.html