2 starwar2012 starwar2012 于 2013.03.01 13:38 提问

扩展SearchActionItem没有添加backstack

有一个搜索结果的Activity,在actionbar中有searchView组件。在onCreateOptionsMenu()自动扩展,并且显示查询结果:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.search_menu, menu);
    MenuItem searchMenuItem = (MenuItem) menu.findItem(R.id.menu_search);
    SearchView searchView = (SearchView)searchMenuItem.getActionView();
    searchView.setOnQueryTextListener(this);
    searchMenuItem.expandActionView(); // expand the search item
    searchView.setQuery(query, false); // hide the keyboard
    searchView.clearFocus();
    return true;
}

home键设置如下:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        break;
    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}

实际上等到用户点击back或up键时,搜索先关闭了,需要在按一遍才能关闭activity,我需要实现的是activity也同时关闭,不知道怎么办?

1个回答

Kill_it
Kill_it   2013.03.01 16:58
已采纳

有一种办法是在SearchViewOnActionExpandListener停止时finish()Activity。

searchMenuItem.setOnActionExpandListener(new OnActionExpandListener() {
  @Override
  public boolean onMenuItemActionCollapse(MenuItem item) {
    finish();
    return true;      
  }
  @Override
  public boolean onMenuItemActionExpand(MenuItem item) {  
    return true;      
  }
});
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!