Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

Android Serializable के साथ गतिविधियों के बीच डेटा कैसे पास करें

<घंटा/>

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

सीरियलाइज़ेशन एक मार्कर इंटरफ़ेस है। क्रमांकन का उपयोग करके, हम किसी वस्तु की स्थिति को बाइट स्ट्रीम में बदल सकते हैं। बाइट स्ट्रीम एक प्लेटफ़ॉर्म स्वतंत्र है, इसलिए यह JVM और अन्य प्लेटफ़ॉर्म पर काम करने वाला है। यहाँ दो गतिविधियों के बीच किसी वस्तु को भेजने का उदाहरण दिया गया है।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल पर जाएं ⇒ नया प्रोजेक्ट और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

 <एडिटटेक्स्ट एंड्रॉइड:आईडी ="@ + आईडी / नाम" एंड्रॉइड:लेआउट_विड्थ ="मैच_पेरेंट" एंड्रॉइड:लेआउट_हाइट ="रैप_कंटेंट" एंड्रॉइड:ईएमएस ="10" एंड्रॉइड:संकेत ="नाम दर्ज करें" android:inputType ="text" />  <बटन एंड्रॉइड:लेआउट_विड्थ ="रैप_कंटेंट" एंड्रॉइड:लेआउट_हाइट ="wrap_co ntent" android:text ="डेटा भेजें" android:id ="@+id/send"/>

चरण 2 - संशोधित मुख्य गतिविधि फ़ाइल MainActivity.java की सामग्री निम्नलिखित है। इस फ़ाइल में प्रत्येक मूलभूत जीवनचक्र विधियाँ शामिल हो सकती हैं।

import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;सार्वजनिक वर्ग MainActivity AppCompatActivity {EditText name; संपादन टेक्स्ट फोन; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); नाम =findViewById (R.id.name); फोन =findViewById (R.id.phone); बटन भेजें =findViewById (R.id.send); Send.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) { अगर (TextUtils.isEmpty (name.getText ()। toString ()) &&TextUtils.isEmpty (phone.getText ()। toString ( ))) { Toast.makeText (MainActivity.this, "कुछ गलत है कृपया जांचें", Toast.LENGTH_LONG)। शो (); }else{sendUserData(name.getText().toString(),phone.getText()। तार()); } } }); } निजी शून्य sendUserData (स्ट्रिंग उपयोगकर्ता नाम, स्ट्रिंग उपयोगकर्ता फोन) { Userinfo userinfo =new Userinfo (); userinfo.setName (उपयोगकर्ता नाम); userinfo.setPhone (उपयोगकर्ता फोन); इरादा भेजना =नया इरादा (मुख्य गतिविधि। यह, दूसरा गतिविधि। वर्ग); बंडल बी =नया बंडल (); b.putSerializable("serialzable",userinfo); send.putExtras (बी); प्रारंभ गतिविधि (भेजें); }} 

चरण 3 - संशोधित मुख्य गतिविधि फ़ाइल SecondActivity.java की सामग्री निम्नलिखित है। इस फ़ाइल में प्रत्येक मौलिक जीवनचक्र विधियाँ शामिल हो सकती हैं। यह गतिविधि वस्तु को MainActivity से एक्सेस करने जा रही है जैसा कि नीचे दिखाया गया है -

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;सार्वजनिक वर्ग सेकेंडएक्टिविटी AppCompatActivity को बढ़ाता है { Userinfo userinfo; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_second); टेक्स्ट व्यू डेटा =findViewById (R.id.data); userinfo =(Userinfo) getIntent ()। getSerializableExtra ("serialzable"); स्ट्रिंग नाम =userinfo.getName (); स्ट्रिंग फोन =userinfo.getPhone (); data.setText ("आपका दर्ज नाम" + नाम + "संख्या है" + फोन); } @Override संरक्षित शून्य पर रोकें () {super.onPause (); उपयोगकर्ता जानकारी =शून्य; }} 

चरण 3 - क्रमबद्ध Userinfo ऑब्जेक्ट की सामग्री निम्नलिखित है। यह ऑब्जेक्ट डेटा हम MainActivity और SecondActivity के बीच से गुजर रहे हैं। Userinfo को क्रमबद्ध वस्तु बनाने के लिए हमें java.io.Serializable . को लागू करना चाहिए इंटरफ़ेस जैसा कि नीचे दिखाया गया है -

आयात करें स्ट्रिंग फोन; सार्वजनिक स्ट्रिंग getName () {वापसी का नाम; } सार्वजनिक शून्य सेटनाम (स्ट्रिंग नाम) { यह नाम =नाम; } सार्वजनिक स्ट्रिंग गेटफोन () {वापसी फोन; } सार्वजनिक शून्य सेटफोन (स्ट्रिंग फोन) { यह फोन =फोन; }}

आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और रन पर क्लिक करें टूलबार से Android Serializable के साथ गतिविधियों के बीच डेटा कैसे पास करें आइकन। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा।

Android Serializable के साथ गतिविधियों के बीच डेटा कैसे पास करें


Android Serializable के साथ गतिविधियों के बीच डेटा कैसे पास करें

अब डेटा भेजें बटन पर क्लिक करें, यह आपको दूसरी गतिविधि पर भेज देगा जैसा कि नीचे दिखाया गया है -

Android Serializable के साथ गतिविधियों के बीच डेटा कैसे पास करें

उपरोक्त आउटपुट में, हमें MainActivity से SecondActivity तक की जानकारी मिली


  1. Xbox गेम पास के साथ Android पर गेम कैसे स्ट्रीम करें

    क्या आप जानते हैं कि आप क्लाउड में Xbox गेम खेल सकते हैं? यह अभी भी अपने शुरुआती दिनों में है, और लेखन के समय, आप Android के अलावा किसी अन्य चीज़ पर स्ट्रीम नहीं कर सकते। हालांकि, अगर आपके पास एक Android फ़ोन है, तो अब आप Android पर गेम स्ट्रीम कर सकते हैं और आप कहीं भी Xbox गेम खेल सकते हैं। गो पर

  1. Ubuntu पर ADB के साथ अपने Android डेटा का बैकअप कैसे लें

    एंड्रॉइड में ऐप डेटा, टेक्स्ट मैसेज और इसी तरह का बैक अप अविश्वसनीय रूप से कठिन हो सकता है, और कभी-कभी महंगा भी हो सकता है। Play Store पर कई ऐप आपके डेटा का बैकअप लेने का वादा करते हैं, लेकिन हिट और मिस हो जाते हैं या एक हाथ और एक पैर की कीमत होती है। क्या आप जानते हैं कि ऐसा करने का एक बेहतर तरीका

  1. एंड्रॉइड में डेटा कैसे बांधें

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