android - onActivityResult not being called after FragmentActivity -
मेरे पास एक गतिविधि ए है जो कि यहां पर कुछ सुझावों को देखकर मैंने यह देखा है मेरे पास कॉलिंग गतिविधि बी से ए: गतिविधि समाप्त करना बी: Overriding 1 संपादित करें मैंने लगभग सभी गतिविधि बी के कोड पर टिप्पणी की (नीचे देखें), ए को बरकरार रखा और समस्या बनी रही। इसलिए, ए निश्चित रूप से कुछ अजीब कर रहा है जो समस्या का कारण बनता है। इससे भी बदतर, मैंने बिना किसी समस्या के अन्य गतिविधियों (उसी कोड का उपयोग करके) किया है! एक यह गतिविधि बी के लिए भावी पीढ़ी के लिए परीक्षण किया गया कोड है (हालांकि ऐसा लगता है कि समस्या ए में है): यह कोशिश करें और अपने कोड के साथ सत्यापित करें: ActivityA.java गतिविधि B.java ध्यान दें: सुनिश्चित करें कि आपने अपनी मेनिफेस्ट फाइल में दोनों गतिविधियों को जोड़ लिया है। startActivityForResult () का उपयोग कर एक गतिविधि बी (फ्रैग्मेंट एक्टिविटी) कॉल करता है। क्रियाकलाप बी से पहले
समाप्त () पर कॉल करके, मैं
setResult () का उपयोग करता हूं इस सब के बावजूद,
onActivityResult () नहीं कहा जाता है मुझे यकीन नहीं है कि मैं क्या कर रहा हूं, क्योंकि मैं कुछ अपरंपरागत नहीं कर रहा हूं, या यह एक एंड्रॉइड बग है।
android: launchMode = "single instance" और
android: noHistory = "true" मेरे मैनिफ़ेस्ट फ़ाइल में कहीं भी सेट नहीं है।
आशय इरादा = नए आशय (getActivity (), ActivityB.class); StartActivityForResult (आशय, MY_RESULT);
आशय इरादा = नया आशय (); setResult (गतिविधि। RESULT_OK, आशय); समाप्त();
onActivityResult () गतिविधि में ए:
@Override सार्वजनिक शून्य परएक्टिवेटिवेशुल्ट (int requestCode, int resultCode, Intent data ) {टोस्ट। मेक टेक्स्ट (getApplication (), "टोस्ट", टोस्ट। एलएनएनजीएच_एलओजी)। दिखाएं (); }
विस्तारयोग्य लिस्ट एक्टिविटी फैली है, हालांकि मुझे नहीं पता कि उस कोड में से कोई भी
onActivityResult () में समस्या का कारण होगा। Logcat मुझे कुछ उपयोगी नहीं दे रहा है।
< कोड> पब्लिक क्लास गतिविधिबी फ्रैगमेंट ऐक्टिविटी बढ़ाता है {@ ओवरराइड संरक्षित शून्य को क्रेट पर (बंडल से बचाया गया इंटरस्टैंस) {सुपर.नक्रेट (सहेजे गए इन्स्टेंसस्टेट); setContentView (R.layout.layout_activityb); आशय इरादा = नए आशय (); Intent.putExtra ("डेटा", "गतिविधि बी से नमस्कार"); setResult (गतिविधि। RESULT_OK, आशय); समाप्त(); }}
सार्वजनिक वर्ग ActivityA गतिविधि को बढ़ाता है {निजी स्थिर अंतिम अंत MY_RESULT = 0; निजी बटन btnStart; @ ओवरराइड संरक्षित शून्य को क्रिएट (बंडल सहेजा गया इन्स्टैंसस्टेट) {सुपर.नक्रेट (सहेजे गए इन्स्टेंसस्टेट); setContentView (R.layout.activity_a); btnStart = (बटन) findViewById (R.id.btnstart); btnStart.setOnClickListener (नया OnClickListener () {@Override सार्वजनिक शून्य पर क्लिक करें (देखें वी) {आशय इरादे = नए आशय (यह, गतिविधि। क्लास); startActivityForResult (इरादे, MY_RESULT);}}); } @ ओवरराइड संरक्षित शून्य पर एक्टिवेटिव रिजल्ट (इंट अनुरोधकोड, इंट परिणाम परिणाम, आशय डेटा) {super.onActivityResult (requestCode, resultCode, डेटा); टोस्ट। मेक टेक्स्ट (getApplication (), डेटा.getStringExtra ("डेटा"), टोस्ट .LENGTH_LONG)। दिखाएं (); }}
सार्वजनिक वर्ग ActivityB FragmentActivity को फैलाता है {सुरक्षित पर शून्य (बंडल सहेजे गए इन्स्टैंसस्टेट) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_b); आशय इरादा = नए आशय (); Intent.putExtra ("डेटा", "गतिविधि बी से नमस्कार"); setResult (गतिविधि। RESULT_OK, आशय); समाप्त(); }}
Comments
Post a Comment