2015-01-13 39 views
0

我有一个actionBar比在两个名为“All”和“Favorites”的列表片段之间导航。在actionBar布局上,它们是RadioButton。 '全部'是数据条目的列表,'收藏夹'是该列表的过滤子集。在“收藏夹”中时,我希望设备的后退按钮始终转到“全部”。我怎样才能做到这一点?这里是一些相关的代码,如果有帮助:RadioButton的Android后退导航

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()); 
     } 
    } 
... 
} 

在此先感谢!

回答

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(); 
} 
} 

希望这会有所帮助。

+0

是的,这是做到了!非常感谢。 – BoltzmannBrain