2010-11-24 23 views
9

मुझे किसी गतिविधि समूह से गतिविधि शुरू करने का प्रयास करते समय कोई परिणाम नहीं मिल रहा है। मैंने गतिविधि और गतिविधि समूह में एक निष्क्रियता डाली है? विशेष रूप से मैं उपयोगकर्ता को Intent.ACTION_GET_CONTENT से फोटो/वीडियो चुनने की कोशिश कर रहा हूं, लेकिन मुझे कुछ भी वापस नहीं मिला है? मैं क्या गलत कर रहा हूं?startActivityForResult?

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
    pickMedia.setType("video/*"); 
    startActivityForResult(pickMedia,12345); 

कोई भी विचार:

यहाँ कैसे मैं कोड फोन है?

+0

स्टीवन, क्या आप कृपया कोड के माध्यम से क्या मतलब है इसके बारे में थोड़ा और स्पष्टता प्रदान कर सकते हैं? धन्यवाद! – Jon

+0

जॉन - ऐसा लगता है जैसे नागकेरन ने अपने मुद्दे को हल करने के लिए अपना दृष्टिकोण इस्तेमाल किया। उन्होंने कुछ नमूना कोड यहां पोस्ट किए: http://stackoverflow.com/questions/6992142/android-wait-for-another-activity-result-it-didnt-work –

उत्तर

41

मुझे एक समान समस्या है। मेरे पास एक गतिविधि समूह उप-गतिविधियों का प्रबंधन था। उप-गतिविधियों में से एक को एक समान बाहरी इरादा (मेरे ऐप के बाहर) कहा जाता है। इसने उप-गतिविधि के भीतर एक्टिविटी रिसेट को कभी भी नहीं बुलाया जिसने इसे शुरू किया।

मुझे अंत में पता चला/याद किया गया कि समस्या यह है क्योंकि एंड्रॉइड केवल उप-गतिविधियों की घोंसला वाली परत की अनुमति देगा ... यानी उप-गतिविधियां उप-सक्रियताओं को घोंसला नहीं दे सकती हैं। इस समस्या के समाधान के लिए: अपने उप गतिविधि से

  1. कॉल getParent().startActivityForResult()
  2. अपने माता पिता (activitygroup) onActivityResult को संभालने के लिए सक्षम हो जाएगा। इसलिए मैंने ActivityGroup का उप-वर्ग बनाया और यह onActivityResult संभाला।
  3. यदि आपको आवश्यकता हो तो आप उस परिणाम को फिर से उप-गतिविधि में फिर से रूट कर सकते हैं। बस वर्तमान गतिविधि getLocalActivityManager().getCurrentActivity() द्वारा प्राप्त करें। मेरी उप-गतिविधियां एक कस्टम गतिविधि से प्राप्त होती हैं इसलिए मैंने कॉल करने के लिए ActivityGroup के लिए उस सबक्लास में handleActivityResult(requestCode, resultCode, data) जोड़ा।
+1

मुझे एक ही समस्या है और मैं समझ नहीं पा रहा हूं कृपया कृपया आप इसे – Dharmendra

+1

@ स्टेवेन पेना समझाते हैं, फिर आपने गतिविधि समूह –

+0

+1 के प्रतिस्थापन को देखने के लिए startActivityForResult के लिए getDecorView() को कैसे कहा है! मैंने चरण 1 और 2 का पालन किया। इसके बाद मैंने अपनी वर्तमान गतिविधि के लिए एक स्थिर संदर्भ बनाए रखा और परिणाम को वापस प्रसारित किया - एक हैक की तरह लेकिन काम किया! धन्यवाद! –

4

आपका जनक गतिविधि में

protected void onActivityResult(int requestCode, int resultCode, Intent intent){ 
    if (requestCode == YOUR_REQUEST_CODE) { 

     CHILD_ACTIVITY_NAME activity = (CHILD_ACTIVITY_NAME)getLocalActivityManager().getCurrentActivity(); 

     activity.onActivityResult(requestCode, resultCode, intent);}} 

तो अपने childern गतिविधि के onActivityResult चलेंगे।

+0

काम कर रहा है ... धन्यवाद –

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