android एंड्रॉइड एप्लिकेशन में "बंडल" क्या है




bundle android-bundle (10)

बंडल का उपयोग इराद वस्तु की सहायता से एक गतिविधि से दूसरी गतिविधि में डेटा भेजना; बंडल उस डेटा को पकड़ता है जो किसी भी प्रकार का हो सकता है।

अब मैं बताता हूं कि दो गतिविधि के बीच डेटा को बंडल कैसे बनाया जाए।

चरण 1: पहली गतिविधि पर

Bundle b=new Bundle();

b.putString("mkv",anystring);

Intent in=new Intent(getApplicationContext(),secondActivity.class);

in.putExtras(b);

startActivity(in);

चरण 2: दूसरी गतिविधि पर

Intent in=getIntent();

Bundle b=in.getExtras();

String s=b.getString("mkv");

मुझे लगता है कि यह आपके लिए उपयोगी है ...........

एंड्रॉइड एप्लिकेशन में bundle क्या है? इसका उपयोग कब करें?


पहली गतिविधि:

String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem();
RadioButton rb = (RadioButton) findViewById(R.id.rb);
Intent i = new Intent(this,secondActivity.class);
i.putExtra("food",food);
i.putExtra("rb",rb.isChecked());

दूसरी गतिविधि:

String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");

बंडल न केवल दो अलग-अलग घटकों के बीच डेटा स्थानांतरित करने के लिए है, बल्कि अधिक महत्वपूर्ण बात यह है कि गतिविधि को नई गतिविधि में नष्ट करने से पहले संग्रहीत मूल्यों को पुनर्स्थापित करने के लिए उपयोग किया जाता है।

जैसे कि EditText विजेट में टेक्स्ट या ListView की स्क्रॉल स्थिति।


बंडलों का उपयोग इरादों के माध्यम से एक गतिविधि से दूसरी गतिविधि में मनमाने ढंग से डेटा भेजने के लिए किया जा सकता है। जब आप एक इरादा प्रसारित करते हैं, इच्छुक गतिविधियां (और अन्य ब्रॉडकास्ट रिसीवर) इस बारे में अधिसूचित की जाएंगी। एक इरादे में बंडल हो सकता है ताकि आप इरादे के साथ अतिरिक्त डेटा भेज सकें।

बंडल कुंजी-मूल्य मैपिंग हैं, इसलिए एक तरह से वे हैश की तरह हैं, लेकिन वे एक स्ट्रिंग / फू ऑब्जेक्ट मैपिंग तक सख्ती से सीमित नहीं हैं। ध्यान दें कि केवल कुछ डेटा प्रकारों को "पार्ससेल" माना जाता है और उन्हें स्पष्ट रूप से बंडल एपीआई में लिखा जाता है।


मुझे यह जोड़ना होगा कि भविष्य में डेटा पास करने के लिए गतिविधियों द्वारा उन बंडलों का उपयोग किया जाता है।

जब स्क्रीन घूमती है, या जब कोई अन्य गतिविधि शुरू होती है, तो विधि protected void onSaveInstanceState(Bundle outState) को बुलाया जाता है, और गतिविधि नष्ट हो जाती है। बाद में, गतिविधि का एक और उदाहरण बनाया गया है, और public void onCreate(Bundle savedInstanceState) गया इंस्टेंसस्टेट public void onCreate(Bundle savedInstanceState) कहा जाता है। जब गतिविधि का पहला उदाहरण बनाया जाता है, तो बंडल शून्य होता है; और यदि बंडल शून्य नहीं है, तो गतिविधि अपने पूर्ववर्ती द्वारा शुरू की गई कुछ व्यवसाय जारी रखती है।

एंड्रॉइड स्वचालित रूप से पाठ फ़ील्ड में टेक्स्ट सहेजता है, लेकिन यह सब कुछ सहेजता नहीं है, और सूक्ष्म बग कभी-कभी प्रकट होते हैं।

हालांकि, सबसे आम विरोधी पैटर्न, यह मान रहा है कि onCreate() केवल प्रारंभिकता करता है। यह गलत है, क्योंकि इसे राज्य को बहाल करना भी आवश्यक है।

इस "रोटेशन पर पुन: निर्माण गतिविधि" अक्षम करने का एक विकल्प है, लेकिन यह पुनरारंभ-संबंधी बग को रोक नहीं पाएगा, इससे उन्हें उल्लेख करना अधिक कठिन हो जाएगा।

ध्यान दें कि गतिविधि की जाने वाली एकमात्र विधि जिसकी कॉल की गारंटी दी जा रही है, पर onPause() । (दस्तावेज़ों में गतिविधि जीवन चक्र ग्राफ देखें।)


गतिविधियों के बीच डेटा पारित करने के लिए बंडल का उपयोग किया जाता है। आप एक बंडल बना सकते हैं, इसे उस इरादे में पास कर सकते हैं जो उस गतिविधि को शुरू करता है जिसका उपयोग गंतव्य गतिविधि से किया जा सकता है।


बंडल का उपयोग गतिविधियों के बीच डेटा साझा करने के लिए किया जाता है, और ऐप की स्थिति को ऑनक्रेट () विधि में सहेजने के लिए किया जाता है ताकि ऐप को यह पता चल जाएगा कि इसे कहां रोका गया था ... मुझे उम्मीद है कि यह मदद करता है :)


बस एक बंडल बनाएँ,

Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);

"This_is_the_next_class.class" में

आप इस तरह की चीजें पुनर्प्राप्त कर सकते हैं।

Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);

बंडल आमतौर पर विभिन्न एंड्रॉइड गतिविधियों के बीच डेटा पास करने के लिए उपयोग किया जाता है। यह आप पर निर्भर करता है कि आप किस प्रकार के मूल्य पारित करना चाहते हैं, लेकिन बंडल सभी प्रकार के मूल्यों को पकड़ सकते हैं और उन्हें नई गतिविधि में भेज सकते हैं।

आप इसे इस तरह इस्तेमाल कर सकते हैं:

Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);  
startActivity(intent);

आप पास करके मूल्यों को प्राप्त कर सकते हैं:

Bundle extras = intent.getExtras(); 
String tmp = extras.getString("myKey");

आप यहां अधिक जानकारी प्राप्त कर सकते हैं:


Bundle और Intent वस्तुओं का उपयोग कर गतिविधियों के बीच डेटा पास करें।

आपका पहला Bundle ऑब्जेक्ट बनाएं

Bundle b = new Bundle();

फिर, बंडल कुंजी "myname" साथ किसी भी स्ट्रिंग में संग्रहीत स्ट्रिंग डेटा को संबद्ध करें

b.putString("myname", anystring);

अब, एक Intent वस्तु बनाएँ

Intent in = new Intent(getApplicationContext(), secondActivity.class);

इरादे के लिए बंडल ऑब्जेक्ट b पास करें

in.putExtras(b);

और दूसरी गतिविधि शुरू करें

startActivity(in);

दूसरी गतिविधि में, हमें पहली गतिविधि से पारित डेटा तक पहुंच प्राप्त करनी होगी

Intent in = getIntent();

अब, आपको बंडल से डेटा प्राप्त करने की आवश्यकता है

Bundle b = in.getExtras();

अंत में, "myname" नाम की कुंजी से जुड़े स्ट्रिंग डेटा का मान प्राप्त करें

String s = b.getString("myname");




android-bundle