Autore Topic: Passaggio dati da activity a fragment (refresh listview)  (Letto 737 volte)

Offline robyrocker89

  • Utente junior
  • **
  • Post: 55
  • Respect: +1
    • roberto-tucci
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows
Passaggio dati da activity a fragment (refresh listview)
« il: 27 Marzo 2014, 16:38:25 CET »
0
Ciao a tutti,
sto sviluppando un'app e sto incontrando serie difficoltà nel fare quello che sto per spiegarvi.
In pratica, sto implementando uno Spinner nella actionbar e ho una listview all'interno di un fragment che viene richiamato dal Navigation Drawer. Vorrei che selezionando un elemento dallo Spinner sulla ActionBar, vengano refreshati i dati di questa listview all'interno del fragment (chiaramente, solo se il fragment è aperto).

In breve, il codice implementato fino ad ora per questo, è il seguente:

Dichiarazione dello spinner nel file res/menu/main.xml:

Codice: [Seleziona]
<item
    android:id="@+id/menu_spinner"
    android:showAsAction="always"
    android:actionViewClass="android.widget.Spinner" />

Nel MainActivity, richiamo così i Fragment:

Codice: [Seleziona]
private class DrawerItemClickListener implements ListView.OnItemClickListener{
        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long id){
            selectItem(position);
        }
    }

    private void selectItem(int position){
        Fragment frgm = new SummaryFragment();
        FragmentManager fm = getSupportFragmentManager();
        switch(position)
        {
            case 0:
                frgm = new SummaryFragment();
                break;
            case 1:
                frgm = new NewJobFragment();
                break;
            case 2:
                frgm = new StatisticsFragment();
                break;
        }

        fm.beginTransaction()
                .replace(R.id.content_frame, frgm)
                .commit();

        mDrawerList.setItemChecked(position, true);
        setTitle(mFragmentTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    }

So che c'è della documentazione ufficiale (http://developer.android.com/training/basics/fragments/communicating.html), ma parla di passaggio dati da un fragment ad una activity...e non è quello che fa per me...o sbaglio?  :-)

Spero in un vostro aiuto!  :-)

Grazie mille!!
TimeReport: your time. In your pocket.

iClaude

  • Visitatore
Re:Passaggio dati da activity a fragment (refresh listview)
« Risposta #1 il: 28 Marzo 2014, 12:49:02 CET »
0
Nel tuo Fragment basta creare un metodo pubblico per eseguire il refresh della ListView.
Nella main Activity richiami questo metodo pubblico tramite un reference al tuo Fragment. Ovviamente deve essere un reference specifico al tuo Fragment, e non un reference generico di tipo Fragment (puoi anche utilizzare il casting x ricavarlo)...

Offline robyrocker89

  • Utente junior
  • **
  • Post: 55
  • Respect: +1
    • roberto-tucci
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows
Re:Passaggio dati da activity a fragment (refresh listview)
« Risposta #2 il: 31 Marzo 2014, 00:17:28 CEST »
0
Nel tuo Fragment basta creare un metodo pubblico per eseguire il refresh della ListView.
Nella main Activity richiami questo metodo pubblico tramite un reference al tuo Fragment. Ovviamente deve essere un reference specifico al tuo Fragment, e non un reference generico di tipo Fragment (puoi anche utilizzare il casting x ricavarlo)...

Grazie mille! Alla fine il tuo consiglio funzionava, ma ho dovuto fare un restyling piuttosto grosso all'app e avendo la necessità di fare altre operazioni, ho optato con lo spostare lo spinner dalla action bar al navigation drawer!  :-)
TimeReport: your time. In your pocket.