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

एंड्रॉइड में एक फ्रैगमेंट से दूसरे फ्रैगमेंट में डेटा कैसे भेजें?

<घंटा/>

यह उदाहरण दर्शाता है कि मैं एसडी कार्ड पर एक फ़ोल्डर/फ़ाइल पर एंड्रॉइड अनुमति कैसे सेट कर सकता हूं ताकि इसे लिखने में सक्षम हो सकें।

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

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

    

चरण 3 − दो फ़्रैगमेंट लेआउट बनाएं और नीचे दिए गए अनुसार निम्नलिखित कोड जोड़ें -

FragmentOne.java

import android.content.Context;import android.os.Bundle;import androidx.annotation.NonNull;import androidx.fragment.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android. view.ViewGroup;import android.widget.Button;import android.widget.EditText; पब्लिक क्लास FragmentOne Fragment को बढ़ाता है {निजी SendMessage SendMessage; पब्लिक फ्रैगमेंटऑन () { } @ ओवरराइड पब्लिक व्यू ऑनक्रिएट व्यू (लेआउट इन्फ्लेटर इन्फ्लेटर, व्यूग्रुप कंटेनर, बंडल सेव्ड इंस्टेंसस्टेट) {रिटर्न इन्फ्लेटर। } @ViewCreated पर सार्वजनिक शून्य को ओवरराइड करें (@NonNull देखें दृश्य, बंडल सहेजा गयाInstanceState) { super.onViewCreated (देखें, सेव किया गया इंस्टेंसस्टेट); बटन btnPassData =view.findViewById(R.id.btnPassData); अंतिम संपादन टेक्स्ट इनडाटा =view.findViewById (R.id.passMessage); btnPassData.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) { sendMessage.sendData (inData.getText ()। toString ()। ट्रिम ());}}); } इंटरफ़ेस SendMessage {शून्य SendData (स्ट्रिंग संदेश); } @अटैच पर सार्वजनिक शून्य को ओवरराइड करें(@NonNull प्रसंग संदर्भ) { super.onAttach(context); कोशिश करें {sendMessage =(SendMessage) getActivity (); } पकड़ें (क्लासकास्ट अपवाद ई) {नई क्लासकास्ट अपवाद फेंकें ("डेटा पुनर्प्राप्त करने में त्रुटि। कृपया पुनः प्रयास करें"); } }}

Fragment_fragment_one.xml -

   <बटन android:id="@+id/btnPassData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent ="true" android:text="पास डेटा टू फ्रैगमेंट टू" /> 

FragmentTwo.java −

import android.os.Bundle;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android. view.ViewGroup;import android.widget.TextView;सार्वजनिक वर्ग FragmentTwo फ्रैगमेंट बढ़ाता है {निजी टेक्स्ट व्यू टेक्स्ट व्यू; सार्वजनिक FragmentTwo () { } @ ओवरराइड पब्लिक व्यू ऑनक्रिएट व्यू (लेआउट इन्फ्लेटर इनफ्लेटर, व्यूग्रुप कंटेनर, बंडल सेव्ड इंस्टेंसस्टेट) {रिटर्न inflater.inflate (R.layout.fragment_fragment_two, कंटेनर, झूठा); } @ओवरराइड पब्लिक वॉयड ऑन व्यूक्रिएटेड(@NonNull व्यू व्यू, @Nullable Bundle saveInstanceState) { super.onViewCreated(view, saveInstanceState); टेक्स्ट व्यू =view.findViewById (R.id.txtData); } शून्य प्रदर्शन प्राप्त डेटा (स्ट्रिंग संदेश) {textView.setText ("डेटा प्राप्त हुआ:" + संदेश); }} 

Fragment_fragment_two.xml −

 

चरण 4 - निम्न कोड को src/MainActivity.java

में जोड़ें <पूर्व>पैकेज app.com.sample;import androidx.appcompat.app.AppCompatActivity;import androidx.viewpager.widget.ViewPager;import android.os.Bundle;import com.google.android.material.tabs.TabLayout;public class MainActivity AppCompatActivity लागू करता है FragmentOne.SendMessage{ TabLayout tabLayout; व्यूपेजर व्यूपेजर; ViewPagerAdapter viewPagerAdapter; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); viewPager =findViewById (R.id.viewPager); viewPagerAdapter =नया ViewPagerAdapter (getSupportFragmentManager ()); viewPager.setAdapter (viewPagerAdapter); tabLayout =findViewById (R.id.tabLayout); tabLayout.setupWithViewPager(viewPager); } @ ओवरराइड सार्वजनिक शून्य सेंडडाटा (स्ट्रिंग संदेश) {स्ट्रिंग टैग ="एंड्रॉइड:स्विचर:" + R.id.viewPager + ":" + 1; FragmentTwo f =(FragmentTwo) getSupportFragmentManager().findFragmentByTag(tag); f.displayReceivedData(संदेश); }}

चरण 5 - निम्नलिखित कोड को androidManifest.xml में जोड़ें

 <एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />   

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

एंड्रॉइड में एक फ्रैगमेंट से दूसरे फ्रैगमेंट में डेटा कैसे भेजें?


  1. एंड्रॉइड में किसी ऑब्जेक्ट को एक गतिविधि से दूसरी गतिविधि में कैसे पास करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में किसी ऑब्जेक्ट को एक गतिविधि से दूसरी गतिविधि में कैसे पास करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में

  1. इरादे का उपयोग करके किसी ऑब्जेक्ट को एक एंड्रॉइड गतिविधि को दूसरे में कैसे भेजें?

    यह उदाहरण दर्शाता है कि मैं इंटेंट का उपयोग करके किसी ऑब्जेक्ट को एक एंड्रॉइड गतिविधि से दूसरे में कैसे भेजूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.x

  1. एंड्रॉइड में एक गतिविधि से एक और गतिविधि से एक छवि कैसे पास करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में एक गतिविधि से एक छवि कैसे पास करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - निम्न