Guest User

Untitled

a guest
Jul 15th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. private int backStackEntries = 0;
  2.  
  3. public void onBackPressed() {
  4. Log.d(TAG,"Number of fragments in back: "+backStackEntries);
  5.  
  6. NewsListFragment fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(currentFrag);
  7.  
  8. backStackEntries-=1;
  9. if(backStackEntries<0)
  10. backStackEntries = 0;
  11.  
  12. if(fragment.getTag().equals(News_TAG[0])){
  13. if(fragment.getParserMaker().isRunning()){
  14. moveTaskToBack(true);
  15. }
  16. else{
  17. finish();
  18. }
  19. }
  20. else{
  21. currentFrag = getSupportFragmentManager().getBackStackEntryAt(backStackEntries).getName();
  22. getSupportFragmentManager().beginTransaction()
  23. .hide(fragment)
  24. .show(getSupportFragmentManager().findFragmentByTag(currentFrag))
  25. .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
  26. .commit();
  27. }
  28. }
  29.  
  30. private void makeFragmentTransaction(String[] urls, int item,String _TAG) {
  31. Bundle bundle = new Bundle();
  32. bundle.putStringArray("urls", urls);
  33.  
  34. NewsListFragment newsFragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(_TAG);
  35. if(newsFragment == null){
  36. newsFragment = new NewsListFragment();
  37. }
  38. newsFragment.setArguments(bundle);
  39.  
  40. if(currentFrag == null){
  41. getSupportFragmentManager().beginTransaction()
  42. .replace(R.id.container, newsFragment, _TAG)
  43. .addToBackStack(_TAG)
  44. .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
  45. .commit();
  46. currentFrag = _TAG;
  47. }
  48.  
  49. else if(!newsFragment.isAdded()){
  50. getSupportFragmentManager().beginTransaction()
  51. .hide(getSupportFragmentManager().findFragmentByTag(currentFrag))
  52. .add(R.id.container,newsFragment,_TAG)
  53. .addToBackStack(_TAG)
  54. .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
  55. .commit();
  56. currentFrag = _TAG;
  57. backStackEntries+=1;
  58. }
  59. else if(!currentFrag.equals(_TAG)){
  60. getSupportFragmentManager().beginTransaction()
  61. .hide(getSupportFragmentManager().findFragmentByTag(currentFrag))
  62. .show(newsFragment)
  63. .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
  64. .commit();
  65. backStackEntries+=1;
  66. currentFrag = _TAG;
  67.  
  68. }
  69.  
  70. navigationView.setCheckedItem(item);
  71. drawerLayout.closeDrawers();
  72. }
  73.  
  74. getSupportFragmentManager().beginTransaction()
  75. .replace(R.id.container, newsFragment, _TAG)
  76. .addToBackStack(_TAG)
  77. .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
  78. .commit();
  79. currentFrag = _TAG;
  80.  
  81. NewsListFragment fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(currentFrag);
  82. if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
  83. getSupportFragmentManager().popBackStack();
  84. } else {
  85. if (fragment.getParserMaker().isRunning()) {
  86. moveTaskToBack(true);
  87. } else {
  88. finish();
  89. }
  90. }
Add Comment
Please, Sign In to add comment