एंड्रॉइड फ्रैगमेंट में startActivityForResult()
बनाम getActivity().startActivityForResult()
के बीच अंतर क्या है? और Fragment में बुलाए जाने पर onActivityForResult()
में व्यवहार अंतर क्या है?startActivityForResult() बनाम getActivity()। AndroidAagivityForResult() एंड्रॉइड फ्रैगमेंट
उत्तर
startActivityForResult()
से इसे संभाल चाहिए fragment
के onActivityForResult()
getActivity().startActivityForResult()
से इसे संभाल चाहिए activity
के onActivityForResult()
मूल रूप से :
आप एक fragment
पर हैं और आप fragment
पर परिणाम को संभालना चाहते हैं, onActivityForResult()
का उपयोग करें, ओथ आप टुकड़ा की activity
से इसे संभाल करना चाहते हैं rwise, का उपयोग getActivity.startActivityForResult()
हम गतिविधि के अंदर startActivityForResult()
और फ्रैगमेंट के अंदर getActivity().startActivityForResult()
का उपयोग कर सकते हैं।
इंशॉर्ट, गतिविधि का संदर्भ प्राप्त करने के लिए हम getActiviy()
के साथ आगे बढ़ रहे हैं।
इसके बजाय, हम विशेष टुकड़ा के onActivityResult() के रूप में नीचे Actiivty .:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
for (Fragment fragment : getChildFragmentManager().getFragments()) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
से अगर हम तो अधिक जानकारी के लिए कहते हैं,, कॉल कर सकते हैं
तो आप अपने टुकड़ा से startActivityForResult()
कॉल करेंगे अनुरोध कोड को उस गतिविधि द्वारा बदला जाएगा जो टुकड़े का मालिक है।
तो, आप अपने गतिविधि में सही resultCode प्राप्त करना चाहते हैं तो आप नीचे के रूप में की कोशिश कर सकते हैं:
प्रयोग न करें: (जैसे मामले में):
startActivityForResult(intent, 1);
उपयोग:
getActivity().startActivityForResult(intent, 1);
उम्मीद है कि यह मदद करता है ..!
असल में मैंने 'getActivity()' का उपयोग किये बिना खंड में 'startActivityForResult() 'का उपयोग किया। यही कारण है कि मैं व्यवहार मतभेद पूछता हूं। –
देखें @ j.elmer इसमें कोई अंतर नहीं है। लेकिन, थोड़ा सा अंतर यह है कि हम गतिविधि के संदर्भ प्राप्त करने के लिए getActivity()। StartActivityForResult() केवल खंड में ही उपयोग कर सकते हैं। –
फ्रैगमेंट में एक अलग 'startActivityForResult' विधि का पूरा बिंदु गतिविधि की onActivityResult में सभी टुकड़ों को पार करने की आवश्यकता से बचने के लिए है। यह करने के लिए बिल्कुल गलत बात है। – ianhanniballake
कोई अंतर बिल्कुल ... लेकिन थोड़ा सा अंतर getActivity() है। startActivityForResult() केवल एक टुकड़ा से कॉल कर सकते हैं :)
प्रारंभ एक्टिविटीफॉररल्ट खंड कॉल प्रारंभिक गतिविधि ForResult इसकी कंटेनर गतिविधि के। तो फ्रैगमेंट के लिए: -
कॉल प्रारंभ करें सक्रियताफॉररेट (इराद, int) खंड की गतिविधि से।
जब आप टुकड़ा सीधे कुछ कुछ परिवर्तन अनुरोध पर बनाया जा सकता है में उपयोग जबकि code.And आप, onActivityresult() में संशोधित हो जाएगी अनुरोध कोड कारण मैं हाल ही में संशोधित अनुरोध कोड के साथ कुछ समस्या का सामना करना पड़ा है। आप This Thread पर एक नज़र डाल सकते हैं।
आपको Activity
के संदर्भ में कॉल करना है, क्योंकि startActivityForResult(Intent intent, int requestCode)
Activity
में निर्दिष्ट विधि है।
इसलिए, यदि आप YourActivity
से कहते हैं, यह पहले से ही की तरह Activity
के संदर्भ में है:
YourActivity extends AppCompatActivity (which is subclass of `Activity`)
लेकिन अगर आप यह YourFragment
से बुला रहे हैं आप Activity
संदर्भ निर्दिष्ट करने के लिए, इस मामले में हो जाएगा जो की जरूरत है गतिविधि YourFragment
; इसलिए हम getActivity()
का उपयोग करते हैं और फिर startActivityForResult()
"startActivityForResult()" गतिविधि कक्षाओं पर काम करता है। जब आप गतिविधि कक्षा में हैं, तो आप सीधे इस विधि का उपयोग कर सकते हैं। जब आप खंड में होते हैं, क्योंकि विभाजन गतिविधि पर बनाता है, तो आपको पहले उस गतिविधि को प्राप्त करना चाहिए जो उस पर आधारित टुकड़ा है। का अर्थ है:
//in fragment class:
Activity activity = this.getActivity();
अब आप गतिविधि है और मैंने कहा, आप "startActivityForResult()" का उपयोग कर सकते गतिविधि है कि आप टुकड़ा से प्राप्त पर।
activity.startActivityForResult();
आशा मदद करता है।
- 1. एंड्रॉइड। फ्रैगमेंट getActivity() कभी-कभी शून्य
- 2. getSherlockActivity() बनाम getActivity()
- 3. डायलॉग फ्रैगमेंट के माध्यम से startActivityForResult() का उपयोग कैसे करें?
- 4. एंड्रॉइड फ्रैगमेंट, फ्रैगमेंट
- 5. एंड्रॉइड फ्रैगमेंट बनाम गतिविधि समूह
- 6. एंड्रॉइड: फ्रैगमेंट
- 7. फ्रैगमेंट एंड्रॉइड
- 8. एंड्रॉइड डायलॉग फ्रैगमेंट खाली है
- 9. एंड्रॉइड में फ्रैगमेंट-फ्रैगमेंट संचार
- 10. एंड्रॉइड फ्रैगमेंट देखें फ्रैगमेंट ट्रान्सक्शन.रेप्लेस()
- 11. startActivityForResult?
- 12. startActivityforResult
- 13. एंड्रॉइड: फ्रैगमेंट
- 14. एंड्रॉइड फ्रैगमेंट getArguments() शून्य शून्य
- 15. एक फ्रैगमेंट
- 16. एंड्रॉइड फ्रैगमेंट बेसिक्स ट्यूटोरियल
- 17. एंड्रॉइड - एक गतिविधि के बाहर startActivityForResult?
- 18. FLAG_ACTIVITY_NO_HISTORY और startActivityForResult
- 19. एंड्रॉइड getActivity() को अपरिभाषित किया गया है
- 20. फ्रैगमेंट
- 21. फ्रैगमेंट
- 22. फ्रैगमेंट
- 23. एंड्रॉइड: समर्थन फ्रैगमेंट प्रबंधक
- 24. एंड्रॉइड मैप फ्रैगमेंट
- 25. एंड्रॉइड - फ्रैगमेंट स्क्रीन घुमाएं
- 26. एंड्रॉइड: फ्रैगमेंट अर्ध पारदर्शी
- 27. फ्रैगमेंट में ऐरेएडाप्टर - एंड्रॉइड
- 28. एंड्रॉइड फ्रैगमेंट को क्रेटव्यू()
- 29. वर्टेक्स शेडर बनाम फ्रैगमेंट शेडर
- 30. एंड्रॉइड फ्रैगमेंट ऑन क्रिएटिव्यू बनाम ऑन एक्टिविटी क्रिएटेड
https://developer.android.com/reference/android/app/Activity.html#onActivityResult(int, पूर्णांक, android.content.Intent) और https://developer.android.com/training/basics/ इरादों/परिणाम.html –
क्या आप नहीं जानते कि एंड्रॉइड विकास के लिए एक दस्तावेज है? –