2015-01-13 41 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