9

Mam tabActivity i będę mieć 3 lub 4 zakładki.Aktualizuj zakładki z działania karty w Android TabHost

W TabA, chciałbym mieć ExpandableListView, który wyświetli listę produktów. Chciałabym, żeby TabC działał jak rodzaj "koszyka na zakupy", prawdopodobnie z samym ListView.

Czy istnieje sposób interakcji z TabHost z działania? Chciałbym móc kliknąć przycisk wewnątrz TabA i zaktualizować go i przejść do TabC. czy to możliwe? Czy mogę uzyskać dostęp do działań Tabu metodami jego rodziców?

Odpowiedz

16

Jeśli zaimplementujesz tabulatory jako widoki, a nie pojedyncze działania, będzie to znacznie prostsze, działa szybciej, zajmuje mniej pamięci i jest lepszym rozwiązaniem IMHO.

W związku z tym w karcie A Activity należy zadzwonić pod numer getParent(), aby uzyskać numer TabActivity. Następnie możesz skorzystać z metod wskazanych przez disretrospect.

+5

+1 dla getParent() końcówka - chociaż nie rozumiem zaleceń dotyczących używania widoków zamiast działań. Wolę aktywności, aby oddzielić cykle życia, a także oddzielić kod należący do każdej zakładki. – FrVaBe

+0

@K. Claszen: "oddzielić cykle życia" - ich cykle życia nie są oddzielne. "aby oddzielić kod należący do każdej karty" - separacja kodów w postaci plików klasy Java istnieje od 15 lat. Nie musisz w tym celu korzystać z oddzielnych czynności. – CommonsWare

+1

Dzięki za odpowiedź. Jak obserwuję, metody cyklu życia działań (onCreate itp.) Są wywoływane tylko wtedy, gdy wybrana jest powiązana karta. I chciałbym móc rozszerzyć dostępne działania, takie jak 'ExpandableListActivity' w zakładce. Jednak obie możliwości są dostępne i zależą od wymagań, więc zastanawiałem się, czy istnieje ogólna rekomendacja. – FrVaBe

1
  1. W swojej działalności, należy getParent(), aby uzyskać TabActivity rodzica
  2. W swojej klasie TabActivity użyć getLocalActivityManager(). GetActivity (tabetyczny) aby uzyskać obiekt aktywności
  3. wywołać metodę obiektu Działalność w
+0

Co powiesz na uzyskanie widoku w tej czynności nr 3 – Mikey

3

spróbuje użyć tego kodu do zmiany aktywności w zakładce:

TabActivity parent = (TabActivity) getParent(); 
TabHost tabhost = parent.getTabHost(); 
tabhost.setCurrentTab(0); 
Powiązane problemy