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

Android में एक Activity से दूसरी Activity में मान कैसे पास करें? (Static और Intent विधियाँ)

Android में Activities के बीच डेटा पास करने के कई तरीके हैं। यह ट्यूटोरियल दो सबसे सरल दृष्टिकोणों को कवर करता है: Static Variables (स्टेटिक वेरिएबल्स) और Intents (इंटेंट्स)। दोनों गैर-स्थायी डेटा स्थानांतरण के लिए उपयुक्त हैं।

विधि 1: Static Variables का उपयोग करना

यह दृष्टिकोण पहले Activity में एक static फ़ील्ड का उपयोग करता है जिसे दूसरे Activity द्वारा एक्सेस किया जाता है।

चरण 1-2: प्रोजेक्ट और लेआउट सेटअप

नया प्रोजेक्ट बनाएं: StaticVsIntentDemo। activity_main.xml पहले के समान (EditText + Button)।

चरण 3: MainActivity में Static Variable

package com.example.staticvsintentdemo;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private static String staticValue;

    public static String getStaticValue() {
        return staticValue;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText editText = findViewById(R.id.edit_text);
        Button button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                staticValue = editText.getText().toString().trim();
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}

चरण 4-5: SecondActivity लेआउट और कोड

activity_second.xml - TextView। SecondActivity.java:

package com.example.staticvsintentdemo;

import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        TextView textView = findViewById(R.id.text_view);
        textView.setText("Static Method: " + MainActivity.getStaticValue());
    }
}

विधि 2: Intents का उपयोग करना (अनुशंसित)

यह मानक Android तरीका है जिसमें putExtra() का उपयोग किया जाता है।

चरण 3 (वैकल्पिक): MainActivity में Intent Extra

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String value = editText.getText().toString().trim();
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        intent.putExtra("intent_key", value); // डेटा Intent में जोड़ें
        startActivity(intent);
    }
});

चरण 5 (वैकल्पिक): SecondActivity में पुनर्प्राप्त करें

String value = getIntent().getStringExtra("intent_key");
textView.setText("Intent Method: " + (value != null ? value : "डेटा नहीं"));

दोनों दृष्टिकोणों की तुलना

पहलूStatic VariableIntent Extra
सरलताबहुत सरलसरल
जीवनचक्र सुरक्षाकम (प्रोसेस डेथ पर खो जाता है)उच्च (सिस्टम द्वारा प्रबंधित)
मेमोरी लीक जोखिमउच्च (यदि बड़े ऑब्जेक्ट्स रखे गए)कम
डेटा प्रकार समर्थनकोई भी ऑब्जेक्टप्राथमिक, String, Parcelable, Serializable
थ्रेड सुरक्षामैन्युअल सिंक्रनाइज़ेशन आवश्यकN/A (इम्युटेबल डेटा)
उपयोग मामलात्वरित प्रोटोटाइप, सरल ऐप्सउत्पादन ऐप्स, मानक अभ्यास

Manifest कॉन्फ़िगरेशन (दोनों के लिए समान)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.staticvsintentdemo">

    <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" />
    </application>
</manifest>

आधुनिक विकल्प (बेहतर अभ्यास)

  • ViewModel (Jetpack): जीवनचक्र-जागरूक, कॉन्फ़िगरेशन परिवर्तनों से बचता है।
  • SharedPreferences: छोटे स्थायी डेटा के लिए।
  • Room Database: संरचित स्थायी डेटा के लिए।
  • WorkManager: पृष्ठभूमि डेटा सिंक के लिए।

निष्कर्ष

जबकि Static Variables त्वरित परीक्षण के लिए सबसे तेज़ हैं, Intent Extras उत्पादन Android विकास के लिए मानक, सुरक्षित और अनुशंसित दृष्टिकोण है। आधुनिक ऐप्स के लिए, आर्किटेक्चर घटकों जैसे ViewModel या LiveData का उपयोग करने पर विचार करें।

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

    Bundle और setArguments के साथ फ्रैगमेंट को डेटा पास करें यह उदाहरण दर्शाता है कि Bundle का उपयोग करके एक्टिविटी से फ्रैगमेंट में स्ट्रिंग डेटा कैसे पास करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में कंटेनर और इनपुट res/layout/activity_main.xml: <?

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

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

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

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