2010-05-31 11 views
9

Ho un TabActivity e avrò 3 o 4 schede.Aggiorna schede dall'attività di una scheda in un TabHost Android

In TabA, mi piacerebbe avere un ExpandableListView, che elencherà i prodotti. Vorrei che TabC agisse come una sorta di "carrello della spesa", probabilmente con un ListView di se stesso.

C'è un modo per interagire con TabHost dall'Attività? Vorrei poter fare clic su un pulsante all'interno di TabA e aggiornarlo e passare a TabC. È possibile? Posso ottenere che le attività di Tab chiamino i metodi dei suoi genitori?

risposta

16

Se si implementa le schede come viste, piuttosto che singole attività, questo sarebbe molto più semplice, più veloce, occupano meno memoria e stia una soluzione migliore IMHO.

Detto questo, nella scheda A Activity, chiamare getParent() per ottenere allo TabActivity. Quindi, puoi usare i metodi indicati da disrospospetto.

+5

+1 per il getParent() punta - anche se non capisco la raccomandazione di utilizzare le viste anziché le attività. Preferisco le attività per separare i cicli di vita e anche per separare il codice che appartiene a ciascuna scheda. – FrVaBe

+0

@K. Claszen: "per separare i cicli di vita" - i loro cicli di vita non sono separati. "anche per separare il codice appartenente a ciascuna scheda" - la separazione del codice sotto forma di file di classe Java è in uso da 15 anni. Non è necessario utilizzare attività separate per questo. – CommonsWare

+1

Grazie per la risposta. Come osservo, i metodi del ciclo di vita delle attività (onCreate, ecc.) Vengono chiamati solo se la scheda associata è selezionata. E mi piace poter estendere le attività fornite come "ExpandableListActivity" in una scheda. Tuttavia, entrambe le possibilità sono forniti e fanno sence a seconda del requisito quindi mi chiedevo se ci potrebbe essere una raccomandazione generale. – FrVaBe

1
  1. Nella tua attività, utilizzare getParent() per ottenere il genitore TabActivity
  2. Nella classe TabActivity, utilizzare getLocalActivityManager(). GetActivity (tabid) per ottenere l'oggetto di attività
  3. chiamata di metodo dell'oggetto Activity
+0

come ottenere la visualizzazione in quell'attività # 3 – Mikey

3

Provare per utilizzare questo codice per modificare l'attività all'interno di una scheda:

TabActivity parent = (TabActivity) getParent(); 
TabHost tabhost = parent.getTabHost(); 
tabhost.setCurrentTab(0); 
Problemi correlati