Thursday, 15 September 2011

java - Update Fragment UI with data passed from Activity -


मेरी आवश्यकता:

मेरा मुख्य गतिविधि अन्य ऐप से डेटा प्राप्त करता है मुख्य गतिविधि को साझा करने योग्य के रूप में सूचीबद्ध किया गया है।

अब, मुझे यह डेटा एक खंड में MainActivity और टुकड़ा टेक्स्टव्यू को अपडेट करें।

में MainActivity.java: यहां मैं प्राप्त कर रहा हूं handleSendText विधि में डेटा (जो कि यूआरएल है)।

  यदि (आशय। एक्शन_एसएएनडी.एक्साल (एक्शन) & amp; amp; amp; amp; और amp; amp; amp; और प्रकार! = नल) {if ( "पाठ / सादा"। बराबर (प्रकार)) {handleSendText (आशय); // संभाल पाठ भेजा जा रहा है}}}  

में handleSendText , मैं एक बंडल बनाने की कोशिश कर रहा हूं और उस डेटा को मेरे टुकड़े में पास कर रहा हूं।

<पूर्व> शून्य हैंडलसेन्द टेक्स्ट (आशय का इरादा) {स्ट्रिंग साझा पाठ = आशय.गेट स्ट्रिंग एक्ट्रा (Intent.EXTRA_TEXT); अगर (साझा पाठ! = नल) {बंडल बंडल = नया बंडल (); Bundle.putString ("url", साझा पाठ); // सेट Fragmentclass तर्क AddTab fragobj = नया AddTab (); // AddTab () मेरा टुकड़ा वर्ग का नाम fragobj.setArguments (बंडल) है; } फ्यूगमेंट क्लास में इसके परक्रेटिव्यू ()
  सार्वजनिक व्यू पर क्रिएटिव्यू (लेआउटइनफ्लेटर इन्फ्लाटर, व्यू ग्रुप कंटेनर, बंडल सहेजे गए इन्स्टेंसस्टेट ) {... // कुछ कोड बंडल बंडल = this.getArguments (); अगर (बंडल! = नल) {स्ट्रिंग साझा = URL = getArguments ()। GetString ("url"); textBox.setText (sharedUrl); Inflater.inflate (R.layout.fragment_add, कंटेनर, गलत); // परिवर्तनों को प्रतिबिंबित करने के लिए यूआई अपडेट करने के लिए, मैं // उपरोक्त लाइन की कोशिश कर रहा हूं। क्या यह सही है? }  

1) समस्या यह है कि नियंत्रण if लूप के अंदर तक नहीं पहुंच रहा है, जिसका अर्थ है बंडल हमेशा NULL लौट रहा है।

2) इसके अलावा, अगर मुझे अन्य ऐप से डेटा प्राप्त नहीं हुआ है मैं अपना editText खाली छोड़ना चाहता हूं, इसलिए मुझे यह चेक करना होगा। मैं ऐसा कैसे कर सकता हूं?

3) इसके अलावा, से setArgument ', मैंने सीखा है कि इससे पहले कि यह टुकड़ा इसकी गतिविधि से जुड़ा हुआ है। तो मैं टुकड़े के यूआई में हुए बदलावों को कैसे प्रतिबिंबित कर सकता हूँ?

सार्वजनिक शून्य सेटअर्जग्राम (बंडल आर्ग्स)

इस खंड के लिए निर्माण तर्क प्रदान करें । इससे पहले केवल टुकड़ा को अपनी गतिविधि से जोड़ा जा सकता है; यही है, तुम्हे टुकड़े के निर्माण के तुरंत बाद उसे फोन करना चाहिए। यहां दिए गए तर्क तुल्यता नष्ट और सृजन में बनाए रखे जाएंगे।

बस एक उचित आपके टुकड़े में विधि, कुछ ऐसा:

  सार्वजनिक शून्य receiveURL (स्ट्रिंग इनपुट) {// आप को जो टुकड़ा को पारित करना चाहते हैं, उसे संभालने के लिए}  

और अपने मुख्य गतिविधि कॉल में आप ऐसा कुछ कर सकते हैं:

  आपका विखंडन टुकड़ा = (आपका विखंडन) getSupportFragmentManager.findFragmentById (R.id.your_fragment); fragment.receive (sharedUrl);  

No comments:

Post a Comment