我有一个actionBar,而不是在两个列表片段之间导航,这些片段称为' All'和'收藏夹'。在actionBar布局中,它们是RadioButtons。 '所有'是一个数据条目列表,'收藏夹'是该列表的过滤子集。当进入'收藏夹'我希望设备的后退按钮始终指向“全部”。我怎样才能做到这一点?以下是一些相关代码,如果它有帮助:
public class InstanceListActivity extends MyBaseActivity {
private InstanceListFragment _listFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create content from resource
setContentView(R.layout.activity_instance_list);
// Get ListFragment
_listFragment = (InstanceListFragment) getSupportFragmentManager()
.findFragmentById(R.id.instance_list_fragment);
// Add Filter menu
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(R.layout.actionbar_filter);
final RadioGroup favorites = (RadioGroup) actionBar.getCustomView()
.findViewById(R.id.filter);
if (favorites != null) {
favorites.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.filter_favorites) {
_listFragment.filterFavorites();
} else {
_listFragment.clearFilter();
}
}
});
}
}
// Handle search queries
if (getIntent() != null) {
handleIntent(getIntent());
}
}
...
}
提前致谢!
答案 0 :(得分:1)
如果我已正确理解你的问题,请覆盖活动的onBackPressed()方法并处理类似的事情。
在favorites.setOnCheckedChangeListener中,在该活动中保存全局布尔变量。例如,
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.filter_favorites) {
isFav=true;
_listFragment.filterFavorites();
} else {
isFav=false;
_listFragment.clearFilter();
}
}
并覆盖onBackPressed()方法,如下所示。
@Override
public void onBackPressed() {
if(isFav){
_listFragment.clearFilter();
}else{
super.onBackPressed();
}
}
希望这有帮助。