2013-03-11 9 views
23

साथ बंडल भेजा जा रहा है यहाँ मेरी कोड है कि काम नहीं कर रहा है:टुकड़ा लेन-देन

// भेजा जा रहा है इस तरह से बंडल:

 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(); 

// इस तरह से प्राप्त कर रहा है:

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

मूल रूप से, डेटा प्राप्त नहीं हुआ है। क्या मैं सही रास्ते पर हूं या ऐसा करने का एक बेहतर तरीका है?

उत्तर

29

आपको फ्रैगमेंट क्लास की विधि का उपयोग करना चाहिए। तो अपने Fragment अंदर निम्नलिखित की तरह कुछ डाल:

Bundle extras = getArguments(); 

संदर्भ: http://developer.android.com/reference/android/app/Fragment.html#getArguments()

+0

कि यह किया है, धन्यवाद। – KickingLettuce

+5

बस स्पष्टीकरण के लिए - कॉलिंग 'getActivity()। GetIntent()। GetExtras()' वास्तव में काम करता है, लेकिन आपको अंतर्निहित 'गतिविधि' के" तर्क "मिलते हैं, न कि 'Fragment's :) –

+0

ओह! इसे मिला ... धन्यवाद फिर से – KickingLettuce

संबंधित मुद्दे