गतिविधि से getSupportFragmentManager () को कॉल नहीं कर सकते


79

मेरे पास एक गतिविधि है जिसमें एक टुकड़ा है।

XML:

 <fragment android:name="com.example.androidcalculator.ResultFragment"
            android:id="@+id/result_fragment"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

और मैं ResultFragment से एक विधि को गतिविधि में विधि से कॉल करना चाहता हूं, लेकिन getSupportFragmentManager "अस्तित्व में नहीं है":

FragmentManager fragMan = getSupportFragmentManager();

मैं इसे कैसे हल करूं?

जवाबों:


189

आपकी गतिविधि समर्थन लाइब्रेरी से FragmentActivity का विस्तार नहीं करती है, इसलिए विधि सुपरक्लास में मौजूद नहीं है

यदि आप 11 या उससे ऊपर के एप को लक्षित कर रहे हैं, तो आप इसके बजाय गतिविधि . getFragmentManager का उपयोग कर सकते हैं ।


11
FragmentManagerअब पदावनत कर दिया गया है।
कूलमाइंड

पूरी तरह से सच नहीं है, आप AndroidX FragmentManager का उपयोग करने वाले हैं।
19 को

1
मैं यहाँ कॉम्पोनेंटएक्टिविटी का उपयोग कर रहा हूँ, अप्प्लेक्टिविटी का नहीं और कम्पोनेंट एक्टीविटी गेटबिल्डमैंजर () में कहीं भी त्रुटि दे रहा है
सुनील चौधरी

56

के AppCompatActivityबजाय कक्षा का विस्तार करेंActivity


18

माता-पिता से वर्तमान गतिविधि प्राप्त करें, फिर इस कोड का उपयोग करें

getActivity().getSupportFragmentManager()

FragmentManager fragMan = getFragmentManager () भी आज़मा सकते हैं;
MrPickles7


4

बस उपयोग करें

 FragmentManager fm = getActivity().getSupportFragmentManager();

हमेशा याद रखें जब MainLayout में फ्रैगमेंट फ़्लोटिंग का उपयोग करें कास्टिंग या getActivity()



2

इसने मेरे लिए काम किया। Android API 19 और ऊपर चल रहा है।

FragmentManager fragMan = getFragmentManager();


0

के बजाय

extends Fragment

उपयोग

extends android.support.v4.app.Fragment 

यह मेरे लिए काम करता है। * API14 और इसके बाद के संस्करण के लिए


-1

मैंनें इस्तेमाल किया FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.