2

enter image description here Ich habe Tab-Fragment, das 3 Fragmente enthält: Fragment A-Fragment B-Fragment c. 1) Nun wird beim Klicken auf das Objekt aus dem Fragment eine Aktivität geöffnet. Wie man in diesem Fall mit der Zurück- und Zurück-Taste umgehen kann.wie zurück zu handhaben drücken Sie in Fragmente und Aktivität

2) Nun öffnet sich ein Element von Fragment C Aktivität, das 3 Registerkarten enthält, die Fragment X Fragment y Fragment z enthalten. wie man in diesem Fall zurück und drücken Sie die Taste drücken.

Kann mir jemand helfen ???

+0

In Fragment getActivity(). OnBackPressed(); –

Antwort

0

Verwenden Sie diesen Code für Standard-Zurück-Taste:

@Override 
    public void onBackPressed() { 
      super.onBackPressed(); 
      this.finish(); 
    } 

für Rücken Bild Taste einfach finish() verwenden in onClickListener();

Button backButton = (Button)this.findViewById(R.id.back); 
backButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    finish(); 
    } 
}); 

wenn schon vorherige Aktivität dann Intent verwenden geschlossen navigieren:

Button backButton = (Button)this.findViewById(R.id.back); 
    backButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     Intent i = new Intent(currentActivity.this, previousActivity.class);  
     startActivity(i); 
     finish(); 

     } 
    }); 
+0

Ich versuchte zweite Lösung mit Bild-Taste, aber es schließt direkt die Anwendung :( –

+0

wo hast du das angewendet ?? – Manish

+0

versuche meine bearbeitete Antwort, 3. Abschnitt – Manish

0

Zuerst make-Methode für die Aktivität, wo das Fragment geladen wird. zum Beispiel laden i das Fragment auf Aktivität NavigationDrawer.class

public Fragment getVisibleFragment(){ 
    FragmentManager fragmentManager = NavigationDrawer.this.getSupportFragmentManager(); 
    List<Fragment> fragments = fragmentManager.getFragments(); 
    if(fragments != null){ 
     for(Fragment fragment : fragments){ 
      if(fragment != null && fragment.isVisible()) 
       return fragment; 
     } 
    } 
    return null; 
} 

dann, rufen Sie die Methode

@Override 
public void onBackPressed() { 

     //call the method 
    if (getVisibleFragment()!=null) { 

     //check which current visible fragment 
     String nameFragment = getVisibleFragment().toString(); 
     if (nameFragment.contains("nameFragmentA")) { 
      //your action A 
     }else if(nameFragment.contains("nameFragmentB")){ 
      //your action B 
     }else{ 
      //another action 
     } 

     } 
} 

Es auf die Fragen 1 und 2. Hoffnung diese Hilfe Sie anwenden können!