/ / एक टुकड़े से दूसरे में डेटा पारित करना - Android, Android- इरादे, Android- टुकड़े

एक टुकड़े से दूसरे में डेटा पास करना - एंड्रॉइड, एंड्रॉइड-इरादे, एंड्रॉइड-टुकड़े

मेरे पास दो टुकड़ों के साथ एक गतिविधि है और मुझे FragmentA से FragmentB तक एक स्ट्रिंग पास करने की आवश्यकता है।

डेटा पास करने के लिए, मेरे पास यह मेरे FragmentA में है:

    Intent intent = new Intent(getActivity(), FragmentB.class);
intent.putExtra("name", "Mark");
startActivity(intent);

और डेटा प्राप्त करने के लिए, मैंने यह FragmentB में किया

    Intent intent = getActivity().getIntent();
Bundle b = intent.getExtras();

if(b!=null)
{
String name =(String) b.get("name");
nameTextView.setText(name);
}

लेकिन यह काम नहीं कर रहा है। क्या एक टुकड़ा को एक टुकड़े से दूसरे टुकड़े में पारित करने के लिए एक विशिष्ट तरीका है?

उत्तर:

उत्तर № 1 के लिए 14
  1. यदि टुकड़ों को एक ही गतिविधि द्वारा होस्ट किया जाता है- आपफ़्रैगमेंट में एक इरादा नहीं डाल सकता। फ्रैगमेंट एक्टिविटी के एक भाग के रूप में कार्य करता है, यह अपने आप में एक्टिविटी नहीं है। तो टुकड़ों के बीच एक स्ट्रिंग साझा करने के लिए आप गतिविधि में एक स्थिर स्ट्रिंग घोषित कर सकते हैं। मान सेट करने के लिए Fragment A से उस स्ट्रिंग को एक्सेस करें और टुकड़ा B में स्ट्रिंग मान प्राप्त करें।
  2. दोनों टुकड़ों को अलग-अलग गतिविधियों द्वारा होस्ट किया जाता है- फिर आप गतिविधि ए से गतिविधि बी के फ्रैगमेंट ए से एक स्ट्रिंग पास करने के लिए पुतेक्स्ट्रा का उपयोग कर सकते हैं। एक्टिविटी बी में उस स्ट्रिंग को स्टोर करें और फ्रैगमेंट बी में इसका उपयोग करें।

जवाब के लिए 4 № 2

Fragments के बीच डेटा पारित करने के लिए आप उपयोग कर सकते हैं setArguments(Bundle b)। उदाहरण के लिए:

public class FragmentA extends Fragment {

public static FragmentA newInstance(String name) {
Bundle bundle = new Bundle();
bundle.putString("name", name);
FragmentA f = new FragmentA();
f.setArguments(bundle);
return f;
}

}

जवाब के लिए 3 № 3

आप नीचे कुछ ऐसा कर सकते हैं,

 Fragment fr=new friendfragment();
FragmentManager fm=getFragmentManager();
android.app.FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("CID", "your value");
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();

निम्नलिखित डेटा प्राप्त करने के लिए,

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("CID");
return inflater.inflate(R.layout.fragment, container, false);
}

जवाब के लिए 0 № 4

FragmentActivity में कोड 1 टुकड़ा A:

fb मेरे द्वारा बनाए गए बीन का उदाहरण है और आईडी पैरामीटर है

Intent intent = new Intent(getContext(), FragmentActivity2.class);
intent.putExtra("id", fb.ID);
startActivity(intent);

FragmentActivity 2 खंड में कोड कोई भी:

fragmentA= (FragmentActivity2) getActivity();
String cust_id = fragmentA.getIntent().getExtras().getString("id");