2017-03-17 5 views
1

Ich habe eine Aktivität mit Registerkarten in einer Navigationsschublade Aktivität erstellt. Ich habe die Listen in der Navigationsleiste mit einzelnen Fragmenten verknüpft. Ich habe auch den Befehl ft.addToBackStack (null) vor ft.commit() verwendet. Es war völlig in Ordnung und ich konnte damit die Fragmente in der Navigationsschublade schließen. Jetzt habe ich in den Fragmenten der Tabbed-Aktivität (Homepage) Webviews erstellt. Ich habe onBackPressed hinzugefügt, um wieder in die Webansicht zu gelangen und jetzt funktioniert die Methode addToBackStack nicht mehr.addToBackStack funktioniert nicht mit onBackPressed-Methode

Für die Navigationsleiste Fragmente,

private void dispaySelectedScreen(int id) { 
    Fragment fragment = null; 

    switch (id) { 
     case R.id.fragment1: 
      fragment = new Fragment1(); 
      break; 
     case R.id.fragment2: 
      fragment = new Fragment2(); 
      break; 
     case R.id.fragment3: 
      fragment = new Fragment3(); 
      break; 
     case R.id.fragment4: 
      fragment = new fragment4(); 
      break; 
    } 

    if (fragment != null) { 
     FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
     ft.replace(R.id.content_main, fragment); 
     ft.addToBackStack(null); 
     ft.commit(); 
    } 

onBackPressed Methode

@Override 
public void onBackPressed() { 
    if (hWebView.canGoBack()) { 
     hWebView.goBack(); 
    } else if (!getFragmentManager().popBackStackImmediate()) 

     if (sWebView.canGoBack()) { 
      sWebView.goBack(); 
     } else if (!getFragmentManager().popBackStackImmediate()) 

      if (dWebView.canGoBack()) { 
       dWebView.goBack(); 
      } else if (!getFragmentManager().popBackStackImmediate()); 



} 

Bitte helfen Sie mir !!!

Antwort

1

versuchen Sie diesen Code: Override onBackPressed() in Ihrer Registerkarte Aktivität (Startseite).

@Override 
public void onBackPressed() { 
    FragmentManager fm = getSupportFragmentManager(); 
    if (hWebView.canGoBack()) { 
     hWebView.goBack(); 
    } else if (!getFragmentManager().popBackStackImmediate()) 
     if (fm.getBackStackEntryCount() > 0) { 
      fm.popBackStack(); 
     } else { 
      super.onBackPressed(); 
     } 
} 
+0

nicht für mich arbeiten .. wenn ich wieder in der Webansicht bin klicken, es tötet die App .. –

+0

den Code in Aktivität hinzufügen und 'getSupportFragmentManager()' statt – rafsanahmad007

+0

die Fragmente innerhalb der Liste alligned Die Navigationsleiste schließt, wenn ich die Zurück - Taste drücke, die die Hauptaktivität anzeigt, aber die Zurück - Taste in der Webansicht (hWebView innerhalb des Tabbed - Fragments) funktioniert nicht und der Zurück - Knopf kiliert die App. –

Verwandte Themen