2010-10-13 3 views
1

J'ai créé deux onglets, disons TAB1 et TAB2. Pour TAB1, je l'ai chargé une activité, par exemple ActivityOne, en TAB1 commeProblème avec le bouton de retour sur l'émulateur lorsque plusieurs activités sont présentes dans un seul onglet

Intent intent = new Intent(this,ActivityOne.class); 
    TabHost.TabSpec spec = getTabHost().newTabSpec("ActivityOne") 
             .setIndicator("Activity One",getResources().getDrawable(R.drawable.artists)).setContent(intent); 
    getTabHost().addTab(spec); 

Ce ActivityOne a étendu la ActivityGroup et j'ai ajouté un bouton dans cette activité. En cliquant sur ce bouton, il appellera une autre activité, par exemple ActivityOne_One, comme

public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(ActivityOne.this,ActivityOne_One.class); 
      replaceContentView("ActivityOne_One",intent); 
     } 
public void replaceContentView(String id, Intent intent){ 
    View view = this.getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
     this.setContentView(view); 
} 

Lorsque l'on clique sur ce bouton ActivityOne_One sera lancé en même TAB1. Dans cette application j'ai deux problèmes: 1) Si je veux revenir à ActivityOne sous le même TAB1 en utilisant le bouton RETOUR traditionnel sur l'émulateur il ne fonctionne pas .. 2) ActivityOne_One se lance sans animation (comme glisser de droite à gauche) effet.

Si quelqu'un sait au sujet de l'une d'entre eux, donner votre avis ..

Merci,
Venu

Répondre

0

voir ce lien qui peut vous aider avec cela. http://blog.henriklarsentoft.com/2010/07/android-tabactivity-nested-activities/

J'ai implémenté ce qui est conseillé dans le lien que je fournis. ça marche bien, mais c'est bizarre et ça ne vous redirige pas toujours comme vous attendriez. J'ai trouvé que vous devez implémenter vos propres onglets personnalisés pour obtenir vraiment l'effet désiré.

+0

salut binnyb..thanks pour votre réponse. J'ai vu ce blog et j'ai rencontré un problème dans la méthode back(). Nous avons ajouté la vue à l'historique (ArrayList) dans la méthode replaceView(). Supposons que nous soyons dans CitiesActivity (donc la taille de l'historique est une) et que nous cliquons sur le bouton BACK, le code de la méthode back() est exécuté) un seul élément dans l'historique (ArrayList) sera supprimé, maintenant la taille de l'historique est zéro. 2) appeler setContentView (history.get (history.size() - 1)); donne java.lang.ArrayIndexOutOfBoundException..So comment puis-je exécuter ce code ?? si cela ne vous dérange pas pouvez-vous me guider d'une manière appropriée pour obtenir une solution – Venugopal

Questions connexes