2011-09-07 4 views
0

J'utilise TabHost pour afficher 3 onglets dans mon application (tableau de bord, commandes et clients). Chacun d'entre eux est une activité séparée contenant un ListView et fonctionne correctement. Ils disposent tous d'un système de «défilement sans fin» comme dans Android Marketplace et conservent leurs positions dans ListView lorsque vous passez d'un onglet à un autre. Lorsque vous cliquez sur un élément dans ListView, il charge actuellement un tout nouvel écran d'activité et quitte TabHost. Je voudrais charger ces activités dans TabHost (par exemple, cliquer sur un client spécifique dans la liste des clients qui vous amène ensuite à voir les détails des clients tout en restant dans l'onglet client.) Vous pouvez ensuite retourner à la liste des clients sans perdre votre position/rechargement de la liste). J'ai lu sur ActivityGroup et ViewFlipper mais j'ai du mal à comprendre comment atteindre le comportement que je désire.Comment lancer une nouvelle activité dans TabHost

Répondre

0
mTabHost = getTabHost(); 
mTabHost.setOnTabChangedListener(this); 
TabSpec spec; 
String Tab_title3 = "NameofTab"; 


TextView txtTabInfo3 = new TextView(this); 
    setUpTextView(txtTabInfo3); 
    txtTabInfo3.setText(Tab_title3); 

intent = new Intent(); 
intent.setClass(this, YourClass.class); 
spec = mTabHost.newTabSpec(Tab_title3).setIndicator(txtTabInfo3) 
      .setContent(intent); 
    mTabHost.addTab(spec); 

Donc, si YourClass est un ListActivity l'intérieur vous pouvez mettre une boîte de dialogue pop-up par exemple avec une autre liste avec les coordonnées du client et vous pouvez ajouter un bouton de fermeture. Pour votre boîte de dialogue, vous pouvez configurer une vue personnalisée d'une vue de liste avec un adaptateur ou autre chose. Par exemple, dans une méthode:

buildMyDialog(){ 
    final Dialog dialog = new Dialog(this); 
    lv2=new ListView(this); 
    lv2.setAdapter(mAdapter2); 
    //.... 
final Button cancelButton=new Button(this); 
    dialog.setContentView(lv2); 

    dialog.show(

}

+0

Je comptais prendre l'utilisateur à une autre activité pour afficher les détails du client qui apparaît à la place de la liste des clients restant dans le TabHost. Est-ce possible plutôt que d'utiliser un dialogue? –

Questions connexes