2011-04-15 3 views
1

J'ai tabActivity dans le projet Android qui contient des onglets. Dans chaque onglet, je peux ouvrir diverses activités, et après l'avoir ouvert dans un onglet je veux revenir à l'activité précédente dans le même onglet, mais le comportement android par défaut ferme mon activité de l'onglet racine. Comment je peux réaliser un comportement dont j'ai besoin?Android TabActivity Retour Bouton Fonctionnalité avec plusieurs activités enfants

+0

@Override onKeyDown public boolean (int codeTouche, événement KeyEvent) { if (codeTouche == KeyEvent.KEYCODE_BACK) {// empêchant la mise en œuvre par défaut précédente terminer juste l'activité actuelle return true; } return super.onKeyDown (code de clé, événement); } –

Répondre

0

Il existe plusieurs façons de procéder. Le premier implique la création d'une GroupActivity personnalisée qui gardera trace de la pile à partir de LocalActivityManager, puis étendra cette classe pour chacun de vos onglets. Pour cela, consultez ce tutoriel:

http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html

Une approche plus simple est de garder un tableau des sous-vues de votre onglet au sein de votre classe initiale de ActivityGroup puis remplacer le bouton de retour. Voici quelques exemples de code:

public void replaceContentView(String id, Intent newIntent) { 
    View view = getLocalActivityManager() 
        .startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
        .getDecorView(); 
    viewList.add(view); // Add id to keep track of stack. 
    this.setContentView(view); 
}  


public void previousView() { 

    if(viewList.size() > 0) { 
     viewList.remove(viewList.size()-1); 
     if (viewList.size() > 0) 
      setContentView(viewList.get(viewList.size()-1)); 
     else 
      initView(); 
    }else { 
     finish(); 
    } 
} 

La classe initView() détient tous le gonflement de la vue de l'activité initiale. De cette façon, vous pouvez appeler cette méthode pour régénérer l'activité d'origine s'il n'y a plus de vues dans le tableau.

Questions connexes