2017-05-02 4 views
-2

Ich möchte das Standardfragment aus dem anderen Fragment zurück, wenn die Schaltfläche zurück geklickt wird, aber ich bin nicht in der Lage, auf das vorherige Fragment zurück zu gehen. Wie kann dies erreicht werden?kann das Fragment auf das vorherige Fragment zurückgesetzt werden?

EduHunt Klasse Hauptklasse

public class EduHunt extends AppCompatActivity { 
    private DrawerLayout mDrawer; 
    private Toolbar toolbar; 
    private NavigationView nvDrawer; 
    private ActionBarDrawerToggle drawerToggle; 
    TextView toolBarTitle; 
    ImageView toolBarLogo; 


    private Fragment mTabHost; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_edu_hunt); 

     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     toolBarLogo = (ImageView) findViewById(R.id.toolbarlogo); 
     toolBarTitle = (TextView) findViewById(R.id.toolbartitle); 


     mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 

     nvDrawer = (NavigationView) findViewById(R.id.nvView); 
     setupDrawerContent(nvDrawer); 

     // Find our drawer view 
     mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawerToggle = setupDrawerToggle(); 

     // Tie DrawerLayout events to the ActionBarToggle 
     mDrawer.addDrawerListener(drawerToggle); 

     FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
     tx.replace(R.id.flContent, new Search()); 

     tx.commit(); 


    } 

    private ActionBarDrawerToggle setupDrawerToggle() { 
     return new ActionBarDrawerToggle(this, mDrawer, toolbar, R.string.drawer_open, R.string.drawer_close); 
    } 

    private void setupDrawerContent(NavigationView navigationView) { 
     navigationView.setNavigationItemSelectedListener(
       new NavigationView.OnNavigationItemSelectedListener() { 
        @Override 
        public boolean onNavigationItemSelected(MenuItem menuItem) { 
         selectDrawerItem(menuItem); 
         return true; 
        } 
       }); 
    } 

    public void selectDrawerItem(MenuItem menuItem) { 
     // Create a new fragment and specify the fragment to show based on nav item clicked 
     Fragment fragment = null; 
     Class fragmentClass; 
     switch (menuItem.getItemId()) { 
      case R.id.search: 
       fragmentClass = Search.class; 
       toolBarLogo.setVisibility(View.GONE); 
       toolBarTitle.setText("Search"); 
       break; 
      case R.id.settings: 
       fragmentClass = Settings.class; 
       toolBarLogo.setVisibility(View.GONE); 
       toolBarTitle.setText("About"); 
       break; 
      case R.id.register: 
       fragmentClass = Register.class; 
       toolBarLogo.setVisibility(View.GONE); 
       toolBarTitle.setText("Register Now"); 
       break; 
      case R.id.nearme: 
       fragmentClass = NearMe.class; 
       toolBarLogo.setVisibility(View.GONE); 
       toolBarTitle.setText("Near Me"); 
       break; 
      default: 
       fragmentClass = Search.class; 
     } 

     try { 
      fragment = (Fragment) fragmentClass.newInstance(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit(); 

     menuItem.setChecked(true); 
     setTitle(menuItem.getTitle()); 
     mDrawer.closeDrawers(); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (drawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 
     switch (item.getItemId()) { 
      case R.id.our_team: 
       final Dialog dialog = new Dialog(this); 
       dialog.setContentView(R.layout.activity_our_team); 
       dialog.show(); 
       return true; 
      case R.id.feedback: 
       startActivity(new Intent(EduHunt.this, SendFeedback.class)); 
       return true; 

     } 
     return super.onOptionsItemSelected(item); 
    } 


    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     drawerToggle.syncState(); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     // Pass any configuration change to the drawer toggles 
     drawerToggle.onConfigurationChanged(newConfig); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.education_hunt, menu); 
     return true; 
    } 

    @Override 
    public void onBackPressed() { 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     Fragment fragment = fragmentManager.findFragmentById(R.id.flContent); 

     if(!(fragment instanceof Search)){ 

      FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
      tx.replace(R.id.flContent, new Search()); 

      tx.commit(); 
     } 
    } 


} 

Ich möchte das Such Fragment (Standard-Fragment) zu unterstützen, wenn es von der Any anderem Fragmente dh über

über

unterstützt wird
public class About extends Fragment { 

    MapView mMapView; 
    private GoogleMap googleMap; 
    LinearLayout collegeAffiliation; 
    ImageView phoneCalls, sendEmails, weblink; 

    public TextView aboutName, aboutLocation, aboutNumber, aboutEmail, aboutWebsite, aboutCategory, aboutAffiliation; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_about, container, false); 
     collegeAffiliation = (LinearLayout) v.findViewById(R.id.collegeAffiliation); 

     aboutName = (TextView) v.findViewById(R.id.about_school_name); 
     aboutLocation = (TextView) v.findViewById(R.id.about_school_location); 
     aboutNumber = (TextView) v.findViewById(R.id.about_school_number); 
     aboutCategory = (TextView) v.findViewById(R.id.about_school_category); 
     aboutAffiliation = (TextView) v.findViewById(R.id.about_college_affiliation); 
     aboutEmail = (TextView) v.findViewById(R.id.about_school_email); 
     aboutWebsite = (TextView) v.findViewById(R.id.about_school_website); 
     phoneCalls = (ImageView) v.findViewById(R.id.phonecalls); 
     sendEmails = (ImageView) v.findViewById(R.id.sendEmails); 
     weblink = (ImageView) v.findViewById(R.id.weblink); 
     mMapView = (MapView) v.findViewById(R.id.mapview); 
     mMapView.onCreate(savedInstanceState); 


     mMapView.onResume(); // needed to get the map to display immediately 

     try { 
      MapsInitializer.initialize(getActivity().getApplicationContext()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     mMapView.getMapAsync(new OnMapReadyCallback() { 
      @Override 
      public void onMapReady(GoogleMap mMap) { 
       googleMap = mMap; 


       OurSchool ourSchool = null; 
       OurCollege ourCollege = null; 
       OurUniversity ourUniversity = null; 
       if (getActivity().getIntent().getSerializableExtra("school") != null) { 
        ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 
        aboutName.setText(ourSchool.getSchoolName()); 
        aboutLocation.setText(ourSchool.getSchoolAddress() + "," + ourSchool.getSchoolDistrict() + "," + ourSchool.getSchoolCountry()); 
        aboutNumber.setText(ourSchool.getSchoolPhone()); 
        aboutNumber.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          callPhoneNumber(); 
         } 
        }); 


        phoneCalls.setOnClickListener(new View.OnClickListener() { 

         @Override 
         public void onClick(View arg0) { 
          callPhoneNumber(); 
         } 
        }); 


        aboutCategory.setText(ourSchool.getSchoolType()); 
        aboutEmail.setText(ourSchool.getSchoolEmail()); 

        aboutEmail.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 

        sendEmails.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 
        aboutWebsite.setText(ourSchool.getSchoolWebsite()); 
        aboutWebsite.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 


        weblink.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 
        LatLng schoollatlng = new LatLng(ourSchool.getLatitude(), ourSchool.getLongitude()); 
        googleMap.addMarker(new MarkerOptions().position(schoollatlng).title(ourSchool.getSchoolName())); 
        CameraPosition cameraPosition = new CameraPosition.Builder().target(schoollatlng).zoom(15).build(); 
        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
       } else if (getActivity().getIntent().getSerializableExtra("college") != null) { 
        ourCollege = (OurCollege) getActivity().getIntent().getSerializableExtra("college"); 
        collegeAffiliation.setVisibility(View.VISIBLE); 
        aboutName.setText(ourCollege.getCollegeName()); 
        aboutLocation.setText(ourCollege.getCollegeAddress() + "," + ourCollege.getCollegeDistrict() + "," + ourCollege.getCollegeCountry()); 
        aboutNumber.setText(ourCollege.getCollegePhone()); 

        aboutNumber.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          callPhoneNumber(); 
         } 
        }); 


        phoneCalls.setOnClickListener(new View.OnClickListener() { 

         @Override 
         public void onClick(View arg0) { 
          callPhoneNumber(); 
         } 
        }); 
        aboutCategory.setText(ourCollege.getCollegeType()); 
        aboutAffiliation.setText(ourCollege.getCollegeAffiliation()); 
        aboutEmail.setText(ourCollege.getCollegeEmail()); 
        aboutEmail.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 

        sendEmails.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 
        aboutWebsite.setText(ourCollege.getCollegeWebsite()); 

        aboutWebsite.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 


        weblink.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 
        LatLng collegelatlng = new LatLng(ourCollege.getLatitude(), ourCollege.getLongtitude()); 
        googleMap.addMarker(new MarkerOptions().position(collegelatlng).title(ourCollege.getCollegeName())); 
        CameraPosition cameraPosition = new CameraPosition.Builder().target(collegelatlng).zoom(15).build(); 
        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

       } else { 
        ourUniversity = (OurUniversity) getActivity().getIntent().getSerializableExtra("university"); 
        aboutName.setText(ourUniversity.getUniversityName()); 
        aboutLocation.setText(ourUniversity.getUniversityAddress() + "," + ourUniversity.getUniversityDistrict() + "," + ourUniversity.getUniverstiyCountry()); 
        aboutNumber.setText(ourUniversity.getUniversityPhone()); 

        aboutNumber.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          callPhoneNumber(); 
         } 
        }); 

        phoneCalls.setOnClickListener(new View.OnClickListener() { 

         @Override 
         public void onClick(View arg0) { 
          callPhoneNumber(); 
         } 
        }); 
        aboutCategory.setText(ourUniversity.getUniversityType()); 
        aboutEmail.setText(ourUniversity.getUniversityEmail()); 

        aboutEmail.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 


        sendEmails.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          sendEmail(); 
         } 
        }); 
        aboutWebsite.setText(ourUniversity.getUniversityWebsite()); 

        aboutWebsite.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 


        weblink.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          setWeblink(); 
         } 
        }); 
        LatLng unilatlng = new LatLng(ourUniversity.getUniversityLatitude(), ourUniversity.getUniversityLongitude()); 
        googleMap.addMarker(new MarkerOptions().position(unilatlng).title(ourUniversity.getUniversityName())); 
        CameraPosition cameraPosition = new CameraPosition.Builder().target(unilatlng).zoom(15).build(); 
        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

       } 
      } 
     }); 


     return v; 
    } 

    public void callPhoneNumber() { 
     try { 
      if (Build.VERSION.SDK_INT > 22) { 
       if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
        // TODO: Consider calling 

        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CALL_PHONE}, 101); 

        return; 
       } 
       OurSchool ourSchool = null; 
       OurCollege ourCollege = null; 
       OurUniversity ourUniversity = null; 
       if (getActivity().getIntent().getSerializableExtra("school") != null) { 
        ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 
        Intent callIntent = new Intent(Intent.ACTION_CALL); 
        callIntent.setData(Uri.parse("tel:" + ourSchool.getSchoolPhone())); 
        startActivity(callIntent); 
       } else if (getActivity().getIntent().getSerializableExtra("college") != null) { 
        ourCollege = (OurCollege) getActivity().getIntent().getSerializableExtra("college"); 
        Intent callIntent = new Intent(Intent.ACTION_CALL); 
        callIntent.setData(Uri.parse("tel:" + ourCollege.getCollegePhone())); 
        startActivity(callIntent); 
       } else 
        ourUniversity = (OurUniversity) getActivity().getIntent().getSerializableExtra("university"); 
       Intent callIntent = new Intent(Intent.ACTION_CALL); 
       callIntent.setData(Uri.parse("tel:" + ourUniversity.getUniversityPhone())); 
       startActivity(callIntent); 


      } else { 
       OurSchool ourSchool = null; 
       OurCollege ourCollege = null; 
       OurUniversity ourUniversity = null; 
       if (getActivity().getIntent().getSerializableExtra("school") != null) { 
        ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 
        Intent callIntent = new Intent(Intent.ACTION_CALL); 
        callIntent.setData(Uri.parse("tel:" + ourSchool.getSchoolPhone())); 
        startActivity(callIntent); 
       } else if (getActivity().getIntent().getSerializableExtra("college") != null) { 
        ourCollege = (OurCollege) getActivity().getIntent().getSerializableExtra("college"); 
        Intent callIntent = new Intent(Intent.ACTION_CALL); 
        callIntent.setData(Uri.parse("tel:" + ourCollege.getCollegePhone())); 
        startActivity(callIntent); 
       } else { 
        ourUniversity = (OurUniversity) getActivity().getIntent().getSerializableExtra("university"); 
        Intent callIntent = new Intent(Intent.ACTION_CALL); 
        callIntent.setData(Uri.parse("tel:" + ourUniversity.getUniversityPhone())); 
        startActivity(callIntent); 
       } 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    @Override 
    public void onRequestPermissionsResult(int requestCode, String[] permissions, 
              int[] grantResults) { 
     if (requestCode == 101) { 
      if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       callPhoneNumber(); 
      } else { 
       Log.e("Permission not Granted", ""); 
      } 
     } 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     mMapView.onResume(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mMapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mMapView.onDestroy(); 
    } 

    @Override 
    public void onLowMemory() { 
     super.onLowMemory(); 
     mMapView.onLowMemory(); 
    } 

    public void sendEmail() { 
     OurSchool ourSchool = null; 
     OurCollege ourCollege = null; 
     OurUniversity ourUniversity = null; 
     if (getActivity().getIntent().getSerializableExtra("school") != null) { 
      ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 
      Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
        "mailto", ourSchool.getSchoolEmail(), null)); 
      try { 
       startActivity(Intent.createChooser(emailIntent, "Send email...")); 
      } catch (android.content.ActivityNotFoundException ex) { 
       Toast.makeText(getContext(), "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
      } 
      startActivity(Intent.createChooser(emailIntent, "Send email...")); 
     } else if (getActivity().getIntent().getSerializableExtra("college") != null) { 
      ourCollege = (OurCollege) getActivity().getIntent().getSerializableExtra("college"); 
      Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
        "mailto", ourCollege.getCollegeEmail(), null)); 
      try { 
       startActivity(Intent.createChooser(emailIntent, "Send email...")); 
      } catch (android.content.ActivityNotFoundException ex) { 
       Toast.makeText(getContext(), "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
      } 
      startActivity(Intent.createChooser(emailIntent, "Send email...")); 
     } else { 
      ourUniversity = (OurUniversity) getActivity().getIntent().getSerializableExtra("university"); 
      Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
        "mailto", ourUniversity.getUniversityEmail(), null)); 
      startActivity(Intent.createChooser(emailIntent, "Send email...")); 
     } 
     try { 

     } catch (android.content.ActivityNotFoundException ex) { 
      Toast.makeText(getContext(), "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
     } 
    } 

    public void setWeblink() { 

     OurSchool ourSchool = null; 
     OurCollege ourCollege = null; 
     OurUniversity ourUniversity = null; 
     if (getActivity().getIntent().getSerializableExtra("school") != null) { 
      ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.addCategory(Intent.CATEGORY_BROWSABLE); 
      intent.setData(Uri.parse("http://" + ourSchool.getSchoolWebsite())); 
      startActivity(intent); 
     } else if (getActivity().getIntent().getSerializableExtra("college") != null) { 
      ourCollege = (OurCollege) getActivity().getIntent().getSerializableExtra("college"); 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.addCategory(Intent.CATEGORY_BROWSABLE); 
      intent.setData(Uri.parse("http://" + ourCollege.getCollegeWebsite())); 
      startActivity(intent); 
     } else { 
      ourUniversity = (OurUniversity) getActivity().getIntent().getSerializableExtra("university"); 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.addCategory(Intent.CATEGORY_BROWSABLE); 
      intent.setData(Uri.parse("http://" + ourUniversity.getUniversityWebsite())); 
      startActivity(intent); 
     } 
     try { 

     } catch (android.content.ActivityNotFoundException ex) { 
      Toast.makeText(getContext(), "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
     } 

    } 




} 

wenn ich zurück durch das andere Fragment. Die App schließt, aber ich möchte , um das Standardfragment anzuzeigen. Kann dies getan werden ???

+0

Hey @Ghimire dieses Beispiel beziehen Sie Ihre Lösung erhalten https://github.com/colaboy2004/FragmentTabHostExample –

+0

Do i Backstack verwenden? @piyushpatel – Ghimire

+0

überprüfen Sie diese https://developer.android.com/guide/components/fragments.html – Pavan

Antwort

1

prüft Fragment Instanz in onBackPress Ereignisse

@Override 
public void onBackPressed() { 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    Fragment fragment = fragmentManager.findFragmentById(R.id.flContent); 

    if(!(fragment instanceof YourDefaultFragment)){ 
      //Load your default fragment 

      toolBarLogo.setVisibility(View.GONE); 
      toolBarTitle.setText("Set Title"); 
    } 
    else{ 
     super.onBackPressed(); 
    } 
} 
+0

Ich muss onBackPressed() auf Aktivität ?? rechts – Ghimire

+0

ja, um Backpress zu verwalten und fragment status –

+0

Ich habe ein Problem. Die Rückseite funktioniert, aber der Titel ändert sich nicht Mate. # Bearbeiteter Code bitte überprüfen – Ghimire

0

Sie es Schnittstelle tun, Backstack listner und onBackPress folgt

BaseFragment erstellen

public class FlipkartBaseFragment Fragment erstreckt {

private MainFlipkartActivity activity; 

private ChangeCurrentFragment changeCurrentFragment; 



@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    activity = (MainFlipkartActivity) getActivity(); 

} 

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 
    if(context instanceof ChangeCurrentFragment) 
    changeCurrentFragment = (ChangeCurrentFragment) context; 

} 

@Override 
public void onDetach() { 
    super.onDetach(); 
    changeCurrentFragment=null; 

} 

public ChangeCurrentFragment onChangeCurrentFragment(){ 

    return changeCurrentFragment; 

} 

public MainFlipkartActivity getBaseActivity() { 

    return activity; 

} 

}

Dann werden alle erweitern Fragment mit BaseFragment In fra Sie können ein Fragment an andere wie ((MainFlipkartActivity) getBaseActivity()). OnFragmentChangeListener (neue TwoFKTFragment(), "1" + neue Random(). nextInt());

Dann implementieren MainActivity wie auf diese Weise

public class MainFlipkartActivity extends AppCompatActivity 
     implements FragmentManager.OnBackStackChangedListener,ChangeCurrentFragment 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     getSupportFragmentManager().addOnBackStackChangedListener(this); 
if (null == savedInstanceState) { 
      HomeFragment cameraImportFragment = new HomeFragment(); 
      manageFragment(cameraImportFragment, Const.TAG_HOME); 
     } 
     } 

@Override 
    public void onBackPressed() { 
     if (getSupportFragmentManager().getBackStackEntryCount() == 1) { 
      finish(); 
     } else { 
      super.onBackPressed(); 

     } 
    } 

} 

    public void manageFragment(Fragment fragment, String tag) 
    { 
     FragmentManager fragmentManager=getSupportFragmentManager(); 
     // String f_name=fragment.getClass().getName(); 
     if(!fragmentManager.popBackStackImmediate(tag,0)) 
     { 
      FragmentTransaction ft=fragmentManager.beginTransaction(); 
      ft.replace(R.id.content_frame, fragment, tag); 
      ft.addToBackStack(tag); 
      ft.commit(); 

     } 
    } 




    @Override 
    public void onFragmentChangeListener(Fragment fragment, String tag) { 
     manageFragment(fragment,tag); 
    } 




    @Override 
    public void onBackStackChanged() { 
     FragmentManager fragmentManager=getSupportFragmentManager(); 
     Fragment fr = fragmentManager.findFragmentById(R.id.frame_container); 
     if(fr!=null){ 
      fr.onResume(); 
     } 
    } 
0

Fragment zu ersetzen, wenn Sie zurück zum vorherigen Fragmente wollen passieren addToBackStack = true

public void replaceFragment(Fragment fragment, boolean addToBackStack) { 
      FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
      if (addToBackStack) { 
       transaction.addToBackStack(null); 
      } 
      transaction.replace(R.id.container_framelayout, fragment); 
      transaction.commit(); 
      getSupportFragmentManager().executePendingTransactions(); 
     } 



public boolean popFragment() { 
     Log.e("test", "pop fragment: " + getSupportFragmentManager().getBackStackEntryCount()); 
     boolean isPop = false; 
     if (getSupportFragmentManager().getBackStackEntryCount() > 0) { 
      isPop = true; 
      getSupportFragmentManager().popBackStack(); 
     } 
     return isPop; 
} 

setzen Sie diesen Code in Ihre Hauptaktivität für Backpress

@Override 
    public void onBackPressed() { 
     if(!popFragment()) { 
      super.onBackPressed(); 
     } 
    } 
+0

replaceFragment (Search, true); Suche wird dabei nicht erkannt. unter Code funktioniert, aber der Titel ändert sich nicht /* @Override öffentliche void onBackPressed() { FragmentManager fragmentManager = getSupportFragmentManager(); Fragmentfragment = fragmentManager.findFragmentById (R.id.flContent); if (! (Fragment instanceof Search)) { FragmentTransaction tx = getSupportFragmentManager(). BeginTransaction(); tx.replace (R.id.flContent, neue Suche()); tx.commit(); } } */ – Ghimire

+0

das erste Mal, dass Sie falsch für das zweite Fragment übergeben müssen, werden Sie für wahr gehen –

+0

ich habe Lösung.Thanks man.Jd Prajapati Lösung funktioniert. – Ghimire

Verwandte Themen