2013-03-11 16 views
23

Tu jest mój kod, który nie działa:Wysyłanie Bundle z fragmentem Transakcji

// Wysłanie pakiet ten sposób:

 String topUser = String.valueOf(scores.get(arg2)); 

     Bundle data = new Bundle(); 
     data.putString("userprofile", topUser); 

     FragmentTransaction t = getActivity().getSupportFragmentManager() 
       .beginTransaction(); 
     SherlockListFragment mFrag = new ProfileFragment(); 
     mFrag.setArguments(data); 
     t.replace(R.id.main_frag, mFrag); 
     t.commit(); 

// Pobieranie ten sposób:

 Bundle extras = getActivity().getIntent().getExtras(); 
     userName = extras.getString("userprofile"); 

Zasadniczo, dane nie są odbierane. Czy jestem na dobrej drodze, czy jest lepszy sposób na zrobienie tego?

Odpowiedz

29

Powinieneś używać metody klasy Fragment. Więc umieścić coś jak następuje wewnątrz Fragment:

Bundle extras = getArguments(); 

referencyjny: http://developer.android.com/reference/android/app/Fragment.html#getArguments()

+0

To zrobił, dzięki. – KickingLettuce

+5

tylko po to, aby wyjaśnić - wywołanie 'getActivity(). GetIntent(). GetExtras()' faktycznie działa, ale dostajesz "argumenty" leżące u podstaw 'Activity', a nie' Fragment's :) –

+0

oh! mam to ... jeszcze raz dziękuję – KickingLettuce

Powiązane problemy