जबकि का उपयोग कर आशय वस्तु हम सीधे अपने putExtra()
का उपयोग कर डेटा के विभिन्न प्रकार के रख सकते हैं। हम यह भी एक Bundle
वस्तु में इन अतिरिक्त डेटा डाल दिया और Intent
में जोड़ सकते हैं। तो हमें क्यों चाहिए यदि हम Intent
का उपयोग कर ऐसा कर सकते हैं?आशय और बंडल रिलेशन
उत्तर
कभी-कभी आप केवल एक few variables
या values
कुछ अन्य Activity
को पास किए जाने, लेकिन क्या अगर आप एक bunch of variable's or values
है कि आप विभिन्न Activities
को पास किए जाने की है। उस मामले में आप Bundle
का उपयोग करें और आसानी से आवश्यक Activity
करने के लिए Bundle
पारित कर सकते हैं। हर बार एक चर के गुजरने के बजाय।
मान लें कि आपकी Bundle
एक Activity
से दूसरे को पास किए जाने मान लेते हैं। यही कारण है कि Intent
आपको अतिरिक्त फ़ील्ड के रूप में Bundle
एस जोड़ने की अनुमति देता है।
संपादित: उदाहरण के लिए आप कुछ अन्य डेटा यह बहुत एक Bundle
में इस पंक्ति डाल करने के लिए सुविधाजनक है के साथ एक डेटाबेस से एक पंक्ति गुजरती हैं और एक अतिरिक्त क्षेत्र के रूप में Intent
को यह Bundle
जोड़ना चाहते हैं।
मैं पूछ रहा हूं क्यों? हम बंडल में एक ही अतिरिक्त डेटा डालने जा रहे हैं और उस बंडल को मंशा वस्तु में जोड़ देंगे। हम सीधे इरादे वस्तु में डाल सकते हैं। है ना? –
नहीं, यह नहीं है। आपके पास बस 'बंडल' हो सकता है जिसे आपको पास करने की आवश्यकता है। क्या आप वास्तव में इसे फ़ील्ड-बाय-फ़ील्ड को 'इरादे' में कॉपी करना चाहते हैं। और यदि 'बंडल' और 'इरादा' की कुंजी ओवरलैप हो जाएंगी? आप लोगों की सभी चीजों को नहीं जानते हैं, इसलिए बस याद रखें कि आप 'बंडल' को 'इरादे' में डाल सकते हैं और जब आपको इसकी आवश्यकता होती है तो आपको पता चलेगा कि क्या करना है। – Michael
एक छोटा सा उदाहरण: आप कुछ अन्य डेटा के साथ डेटाबेस से एक पंक्ति पारित करना चाहते हैं। इस पंक्ति को 'बंडल' में स्टोर करना बहुत सुविधाजनक है। मेरे अनुप्रयोगों में से एक में मैं डेटाबेस से कई पंक्तियों को पारित करने के लिए 'बंडल' की एक सूची का उपयोग करता हूं। – Michael
जैसा कि आप देख सकते हैं, Intent
आंतरिक रूप से इसे Bundle
में संग्रहीत करता है।
public Intent putExtra(String name, String value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putString(name, value);
return this;
}
मुझे लगता है कि @Lalit क्या मतलब मान रहा है अपनी गतिविधि हमेशा अपनी कक्षा में एक भी Bundle
में विभिन्न उद्देश्यों के लिए एक ही चर उन सभी को, आप स्टोर कर सकते हैं गुजरता है और बस intent.putExtras(mBundle)
का उपयोग जब भी आप का एक ही सेट की जरूरत है मापदंडों।
कि यह आसान कोड बदलने के लिए अगर एक पैरामीटर अपने कोड में अप्रचलित हो, उदाहरण के लिए होगा। जैसा:
public class MyActivity {
private Bundle mBundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
mBundle = new Bundle();
mBundle.putString("parameter1", value1);
mBundle.putString("parameter2", value2);
}
private void openFirstActivity() {
Intent intent = new Intent(this, FirstActivity.class);
intent.putExtras(mBundle);
startActivity(intent);
}
private void openSecondActivity() {
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtras(mBundle);
startActivity(intent);
}
}
OBS: पहले से ही कहा गया है, एक आंतरिक Bundle
में Intent
भंडार मानकों, और यह ध्यान देने योग्य बात है कि जब आप putExtras
फोन, आंतरिक आशय बंडल एक ही वस्तु को इंगित नहीं करता लायक है, लेकिन इसके बजाय एक सरल for
का उपयोग करके सभी चरों की एक प्रति बनाता है:
for (int i=0; i<array.mSize; i++) {
put(array.keyAt(i), array.valueAt(i));
}
- 1. रिलेशन
- 2. आशय अतिरिक्त
- 3. टेस्टपी रिवर्स रिलेशन
- 4. अधिसूचना गुजरता वर्ष आशय अतिरिक्त
- 5. एंड्रॉयड आशय
- 6. सिम्फनी वन-टू-वन रिलेशन
- 7. एंड्रॉयड-प्रसारण रिसीवर और आशय फ़िल्टर
- 8. बंडल और बंडल के बीच अंतर
- 9. बंडल इंस्टॉल - डिप्लॉयमेंट और बंडल पैक
- 10. गिट बंडल: बंडल टैग और हेड
- 11. एंड्रॉयड आशय प्रसंग भ्रामक
- 12. कैसे एक आशय
- 13. आशय एक नई गतिविधि :(
- 14. फ़ाइल ऑब्जर्वर आशय सेवा
- 15. लाटेक्स और आर बंडल?
- 16. जेपीए/हाइबरनेट: कई लोग कई रिलेशन
- 17. एंड्रॉयड AlarmClock ACTION_SET_ALARM आशय अपवाद
- 18. 'बंडल' और 'बंडल इंस्टॉल' रेल के बीच अंतर 3?
- 19. आशय एक्स्ट्रा कलाकार खो जब गतिविधि
- 20. बंडल बनाने और नई गतिविधि
- 21. बूस्ट सबग्राफ और बंडल गुण
- 22. एएसपी.नेट एमवीसी बंडल और कमी
- 23. बंडल पहचानकर्ता और प्रावधान प्रोफ़ाइल
- 24. पुनरावर्ती प्रोफ़ाइल और बंडल आइटम
- 25. बंडल आईडी और एसकेयू संख्या
- 26. क्रॉन और बंडल निष्पादन समस्या
- 27. ANDROID: अगर वाईफ़ाई सक्षम और सक्रिय, एक आशय
- 28. एंड्रॉयड आशय: प्रयोग आशय से वर्ग ऑब्जेक्ट पारित करने के लिए क्रियाएँ
- 29. एंड्रॉयड: आशय के लिए डेटा जोड़ने गतिविधि
- 30. Google नेविगेशन (एंड्रॉयड 1.6) आशय कॉलबैक
क्षमा करें, लेकिन यह गलत है, मुझे यह जानने का जवाब दें कि क्यों। – Reno
'mExtras = नया बंडल(); 'क्या यह पर्याप्त विश्वास नहीं है? यदि नहीं जाना है तो 'Intent.java' के स्रोत कोड को स्वयं जांचें। – Reno