Autore Topic: Comunicazioni tra classi  (Letto 374 volte)

Offline maqquo91

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy note
  • Sistema operativo:
    Win7
Comunicazioni tra classi
« il: 03 Febbraio 2014, 11:17:07 CET »
0
Ciao a tutti, sono sto cercando di avvicinarmi alla programmazione android.
Il mio problema è il seguente: ho un Stringa che viene passata da una ListActivity ad un Activity, che dovrebbe passarla ad un Fragment, il primo passaggio funziona, ma quando provo a richiamare la Stringa nella classe che crea il fragment non mi riconosce la variabile. Ho provato anche a impostare tutti i metodi come public (per prova) ma non funziona lo stesso.

Ecco qui il mio codice:
PS: ho rimosso alcuni pezzi di codice per favorire la leggibilità.

Codice (Java): [Seleziona]
public class MasterRifugio extends FragmentActivity implements ActionBar.TabListener {
        //memorizzo la stringa TAG per il Logcat
        public static final String TAG = MainActivity.class.getSimpleName();
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_master_rifugio);
               
                Intent intent=getIntent();

                //prendo URL
                Uri mURL = intent.getData();
        }

                ....

        public static class AppSectionsPagerAdapter extends FragmentPagerAdapter {
                public AppSectionsPagerAdapter(FragmentManager fm) {
                    super(fm);
                }
               
                @Override
                public Fragment getItem(int i) {
                //Lancio un fragment per ogni sezione
                        switch (i){
                                case 0:
                                        Fragment frag = new DescrizioneFragment();
                                        Bundle bundle = new Bundle();
                                        //passo i Dati al fragment
                                        bundle.putString("rifugioURL", mURL);    //QUI NON RIESCO A RECUPERARE LA VARIABILE SOPRA
                                        frag.setArguments(bundle);
                                       
                                        return frag;
                         
                        }
                        return null;

        }
}


grazie a tutti per l'aiuto.

Offline crc_error

  • Utente junior
  • **
  • Post: 85
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Windows 8, Ubuntu 12
Re:Comunicazioni tra classi
« Risposta #1 il: 03 Febbraio 2014, 11:47:42 CET »
0
Perchè mUrl è definita solo nell'onCreate e non a livello di classe..

Codice (Java): [Seleziona]
private Uri mUrl;



@Override
protected void onCreate(Bundle savedInstanceState) {
.. altro codice


                //prendo URL
                // via questo: Uri mURL = intent.getData();
                // solo
                mURL = intent.getData();


.. altro codice
}

Offline maqquo91

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy note
  • Sistema operativo:
    Win7
Re:Comunicazioni tra classi
« Risposta #2 il: 03 Febbraio 2014, 22:11:41 CET »
0
Ti ringrazio per la risposta immediata. Hai ragione. Era così semplice... devo ancora prenderci su bene la mano  ;-)