Jak odświeżyć zawartość zakładki fragmentu na kliknięcie przycisku
Jestem naprawdę nowy w Androidzie i wdrażam mały projekt, w którym mam wiadomości z jednej strony Drupala. Ta aplikacja ma 3 karty, a każda karta ma listę artykułów o określonej treści. Lista artykułów jest tworzona przez przeglądy tekstowe i widoki obrazów ułożone w linearlineout. Kiedy klikam tytuł, artykuł otwiera się ze szczegółami. Artykuły te są ładowane z witryny Drupala za pośrednictwem modułu HTTP POST i ViewJSON. Zakładki są tworzone przy użyciu FragmentActivity i TabHost. Wszystko jest w porządku i działa dobrze, dopóki tutaj.
Mój problem polega na tym, że chcę zrobić jeden przycisk odświeżania, aby umieścić go na kartach, a kiedy go nacisnę, lista artykułów musi się odświeżyć lub przeładować i zachować aktualną kartę. Próbowałem zastąpić zawartość fragmentu tabulatora i ponownie go otworzyć, ale po kliknięciu tytułu jednego artykułu, aby go otworzyć, zawartość karty pozostaje w stosie pod wszystkimi fragmentami. Wspominam, że gdy klikam tytuł artykułu, otwiera się jeden nowy fragment. Wysłałem id artykułów jako argument i w tym samym fragmencie otwieram treść artykułu.
Próbowałem z tym kodem, ale bez powodzenia.
Button btn_refresh = (Button) findViewById(R.id.btn_refresh);
btn_refresh.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String current_tab = mTabHost.getCurrentTabTag();
if(current_tab.contains("POPULARE")){
Fragment f;
f = new PopulareActivity();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
if(current_tab.contains("RECOMANDATE")){
Fragment f;
f = new RecomandateActivity();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
Dokładniej wchodzę do aplikacji, wciskam Tab2 (pokaż listę artykułów z tab2), naciśnij przycisk odświeżania, otwórz jeden artykuł, naciśnij przycisk wstecz urządzenia mobilnego i pokaż mi zawartość tab2. Teraz wchodzę na tab1 (i pokazuję listę artykułów z tab1), otwieram jeden artykuł z listy tab1, pokazuję, czego potrzebuję, i wciskam przycisk Wstecz z komórki. W tym momencie wyświetlana jest zawartość tab2 (lista artykułów z tab2, z której nacisnąłem przycisk odświeżania).
Aby otworzyć szczegóły artykułu, którego używam:
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment f;
f = new DetaliiActivity();
Bundle data = new Bundle();
data.putInt("id", nid);
f.setArguments(data);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
});
Z góry dziękuję za pomoc!