2015-10-18 53 views
0

我不知道该怎么做。我的应用程序的总体布局是一切都包含在一个单一的活动。在此活动中加载主片段。该主要片段具有可以过滤结果的搜索视图。通过单击主片段中的项目,另一个辅助片段将作为对话框加载。在任何时候,用户都可以点击一个链接,将另一个主片段添加到堆栈中。我的问题是,当用户按下向上移动后台时,searchview将优先于次要片段并删除用户过滤的数据。使用非片段元素管理后台堆栈顺序

这里是理想的东西我要为我堆栈中为了

Activity -> primary Fragment -> searchview filter -> secondary fragments * X -> primary fragment -> repeat 

这里是位于活动我目前的堆栈中为了

Activity -> primary fragment -> secondary fragments * X -> searchview filter -> primary fragment -> repeat 

当前onBackPressed()。

@Override 
public void onBackPressed(){ 
    if(getFragmentManager().getBackStackEntryCount() > 0) { 
     getFragmentManager().popBackStack(); 
    } else { 
     this.finish(); 
    } 
} 

回答

0

如果要保留筛选的搜索结果,请覆盖onSaveInstanceState()并保存筛选器约束。在onCreateView()覆盖中,您检查savedInstanceState是否为空,如果是,则从中获取过滤器约束并重新过滤结果。