Sono davvero nuovo in Android e sto implementando un piccolo progetto in cui ho notizie da un sito Web Drupal. Questa app ha 3 schede e ogni scheda contiene un elenco di articoli con contenuti specifici. L'elenco degli articoli è creato da visualizzazioni di testo e immagini visualizzate in linearlayout. Quando clicco sul titolo, l'articolo si apre con i dettagli. Questi articoli vengono caricati dal sito Drupal tramite il modulo HTTP POST e ViewJSON. Le schede vengono create con FragmentActivity e TabHost. Va tutto bene e funziona bene fino a qui.Come aggiornare il contenuto della scheda frammenti sul pulsante clic
Il mio problema è che voglio fare un pulsante di aggiornamento, da posizionare su schede e quando lo preme, l'elenco degli articoli deve aggiornare o ricaricare e mantenere aperta la scheda corrente. Ho provato a sostituire il contenuto del frammento di tab e riaprirlo, ma quando faccio clic sul titolo di un articolo per aprirlo, il contenuto della scheda rimane in pila sotto tutti i frammenti. Dico che quando clicco sul titolo dell'articolo, si apre un nuovo frammento. Ho inviato un id degli articoli come argomento e nello stesso frammento apro il contenuto dell'articolo.
Stavo provando con questo codice ma senza successo.
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();
}
Più esattamente inserisco su App, premere Tab2 (visualizza l'elenco degli articoli da Tab2), premere il pulsante di aggiornamento, aprire un articolo, premere il pulsante posteriore del dispositivo mobile e mi mostra il contenuto di Tab2. Ora, accedo a tab1 (e mostro l'elenco degli articoli da tab1), apro un articolo dall'elenco di tab1, mostrami cosa mi serve e premo il pulsante indietro da cellulare. In questo momento viene mostrato il contenuto di tab2 (l'elenco degli articoli del modulo tab2 da dove ho premuto il pulsante di aggiornamento.).
Per aprire i dettagli di un articolo che uso:
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();
}
});
Grazie in anticipo per l'aiuto!
puoi elaborare un po 'sul metodo di aggiornamento? Non sono chiaro su quanto sarebbe stato aggiornato questo frammento – ChuckKelly
Il metodo di aggiornamento può contenere funzioni per aggiornare gli elementi/dati ecc. Nel frammento. In realtà non fa nulla con il frammento stesso, ma non deve essere ricreato per aggiornare i dati al suo interno. – NickL
È anche possibile accedere al frammento corrente tramite ((SectionsPagerAdapter) mViewPager.getAdapter()). GetItem (mViewPager.getCurrentItem())) – yesildal