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

Android में एक एक्टिविटी से दूसरी एक्टिविटी में ऑब्जेक्ट कैसे पास करें?

यह उदाहरण दर्शाता है कि Android में Serializable इंटरफेस का उपयोग करके कस्टम ऑब्जेक्ट को एक एक्टिविटी से दूसरी एक्टिविटी में कैसे पास किया जाए।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट XML (MainActivity)

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click here to pass object to Second Activity!"
        android:id="@+id/button"
        android:layout_centerInParent="true" />
</RelativeLayout>

चरण 3: Serializable मॉडल क्लास बनाएं

Character.java - Serializable इम्प्लीमेंट करें:

import java.io.Serializable;

public class Character implements Serializable {
    String name, profession, position;
    String[] abilities;

    public Character(String name, String profession, String position, String[] abilities) {
        this.name = name;
        this.profession = profession;
        this.position = position;
        this.abilities = abilities;
    }
}

चरण 4: MainActivity.java में Intent से ऑब्जेक्ट पास करें

src/MainActivity.java - putExtra() में ऑब्जेक्ट डालें:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
                Character sports = new Character("CR7", "Football", "Left Winger",
                    new String[]{"Best Free kicker in the World"});
                intent.putExtra("Character", sports);
                startActivity(intent);
            }
        });
    }
}

चरण 5: SecondActivity.java में ऑब्जेक्ट प्राप्त करें

SecondActivity.java - getSerializableExtra() का उपयोग:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Arrays;

public class SecondActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Character sports = (Character) getIntent().getSerializableExtra("Character");
        TextView textView = findViewById(R.id.textView);
        textView.setText(sports.name + "\n" + sports.profession + "\n" + sports.position + "\n" + Arrays.toString(sports.abilities));
    }
}

चरण 6: SecondActivity लेआउट

res/layout/activity_second.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SecondActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:textSize="20sp"
        android:layout_centerInParent="true"/>
</RelativeLayout>

चरण 7: AndroidManifest.xml में दोनों एक्टिविटी रजिस्टर करें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity"></activity>
    </application>
</manifest>

ऐप चलाएं

बटन दबाएं - SecondActivity खुलेगी और ऑब्जेक्ट डेटा दिखाएगी।

Android में एक एक्टिविटी से दूसरी एक्टिविटी में ऑब्जेक्ट कैसे पास करें?

Android में एक एक्टिविटी से दूसरी एक्टिविटी में ऑब्जेक्ट कैसे पास करें?

  1. एंड्रॉइड में फ्रैगमेंट से एक्टिविटी का मेथड कैसे कॉल करें एंड्रॉइड में फ्रैगमेंट से एक्टिविटी का मेथड कैसे कॉल करें

    फ्रैगमेंट से होस्ट एक्टिविटी के पब्लिक मेथड को कॉल करने के तरीके एंड्रॉइड में फ्रैगमेंट अपनी होस्ट एक्टिविटी के साथ getActivity() के माध्यम से संवाद कर सकता है। एक्टिविटी के पब्लिक मेथड को कॉल करने के लिए फ्रैगमेंट को एक्टिविटी को उपयुक्त टाइप में कास्ट करना होता है। यह पैटर्न फ्रैगमेंट-एक्टिविटी सं

  1. एंड्रॉइड में एक एक्टिविटी से दूसरी एक्टिविटी में इमेज कैसे पास करें एंड्रॉइड में एक एक्टिविटी से दूसरी एक्टिविटी में इमेज कैसे पास करें

    Intent के माध्यम से इमेज रिसोर्स ID या बिटमैप पास करना एंड्रॉइड में एक एक्टिविटी से दूसरी में इमेज पास करने के दो मुख्य तरीके हैं: रिसोर्स ID (इंट/ड्रॉएबल रेफरेंस) पास करना (कुशल, केवल ऐप-इंटरनल इमेज के लिए) या बिटमैप/बाइट ऐरे पास करना (किसी भी इमेज के लिए, लेकिन मेमोरी-इंटेंसिव)। चरण 1: नया प्रोजे

  1. Android में एक Fragment से दूसरे Fragment में डेटा कैसे भेजें? Android में एक Fragment से दूसरे Fragment में डेटा कैसे भेजें?

    परिचय यह ट्यूटोरियल दर्शाता है कि Android में Fragment के बीच डेटा कैसे पास करें। हम ViewPager और TabLayout का उपयोग करके दो फ्रैगमेंट्स बनाएंगे और इंटरफेस के माध्यम से डेटा ट्रांसफर करेंगे। आवश्यक चरण चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मुख्य लेआउट (res