Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int backStackEntries = 0;
- public void onBackPressed() {
- Log.d(TAG,"Number of fragments in back: "+backStackEntries);
- NewsListFragment fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(currentFrag);
- backStackEntries-=1;
- if(backStackEntries<0)
- backStackEntries = 0;
- if(fragment.getTag().equals(News_TAG[0])){
- if(fragment.getParserMaker().isRunning()){
- moveTaskToBack(true);
- }
- else{
- finish();
- }
- }
- else{
- currentFrag = getSupportFragmentManager().getBackStackEntryAt(backStackEntries).getName();
- getSupportFragmentManager().beginTransaction()
- .hide(fragment)
- .show(getSupportFragmentManager().findFragmentByTag(currentFrag))
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
- }
- }
- private void makeFragmentTransaction(String[] urls, int item,String _TAG) {
- Bundle bundle = new Bundle();
- bundle.putStringArray("urls", urls);
- NewsListFragment newsFragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(_TAG);
- if(newsFragment == null){
- newsFragment = new NewsListFragment();
- }
- newsFragment.setArguments(bundle);
- if(currentFrag == null){
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.container, newsFragment, _TAG)
- .addToBackStack(_TAG)
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
- currentFrag = _TAG;
- }
- else if(!newsFragment.isAdded()){
- getSupportFragmentManager().beginTransaction()
- .hide(getSupportFragmentManager().findFragmentByTag(currentFrag))
- .add(R.id.container,newsFragment,_TAG)
- .addToBackStack(_TAG)
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
- currentFrag = _TAG;
- backStackEntries+=1;
- }
- else if(!currentFrag.equals(_TAG)){
- getSupportFragmentManager().beginTransaction()
- .hide(getSupportFragmentManager().findFragmentByTag(currentFrag))
- .show(newsFragment)
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
- backStackEntries+=1;
- currentFrag = _TAG;
- }
- navigationView.setCheckedItem(item);
- drawerLayout.closeDrawers();
- }
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.container, newsFragment, _TAG)
- .addToBackStack(_TAG)
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
- currentFrag = _TAG;
- NewsListFragment fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(currentFrag);
- if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
- getSupportFragmentManager().popBackStack();
- } else {
- if (fragment.getParserMaker().isRunning()) {
- moveTaskToBack(true);
- } else {
- finish();
- }
- }
Add Comment
Please, Sign In to add comment