Android में Activities के बीच डेटा पास करने का सबसे आम और सीधा तरीका Intent.putExtra() विधि का उपयोग करना है। यह दृष्टिकोण सरल Key-Value जोड़े के लिए आदर्श है और अधिकांश बुनियादी उपयोग मामलों के लिए पर्याप्त है।
पूर्वापेक्षाएँ
- Android Studio इंस्टॉल
- Java और Android Fundamentals का बुनियादी ज्ञान
चरण 1: प्रोजेक्ट बनाएं
Android Studio → File > New > New Project → Empty Activity → नाम: IntentExtraDemo → Finish।
चरण 2: Main Activity UI
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_margin="16dp"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:hint="भेजने के लिए संदेश दर्ज करें"
android:inputType="text" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="16dp"
android:text="भेजें" />
</LinearLayout>
चरण 3: MainActivity में Intent.putExtra() लागू करें
src/MainActivity.java - सीधे Intent पर putExtra(String key, String value) कॉल करें।
package com.example.intentextradamo;
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 {
@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) {
String message = editText.getText().toString().trim();
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
// सीधे Intent में Extra जोड़ें
intent.putExtra("message_key", message);
// आप कई Extras जोड़ सकते हैं:
// intent.putExtra("user_age", 30);
// intent.putExtra("is_active", true);
startActivity(intent);
}
});
}
}
चरण 4: Second Activity लेआउट
res/layout/activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_margin="16dp"
android:orientation="vertical"
tools:context=".SecondActivity">
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
चरण 5: SecondActivity में Extra पुनर्प्राप्त करें
src/SecondActivity.java - getIntent().getStringExtra() का उपयोग करें और डिफ़ॉल्ट मान प्रदान करें।
package com.example.intentextradamo;
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);
// Intent से डेटा प्राप्त करें
String message = getIntent().getStringExtra("message_key");
if (message != null && !message.isEmpty()) {
textView.setText("प्राप्त संदेश: " + message);
} else {
textView.setText("कोई संदेश प्राप्त नहीं हुआ");
}
}
}
चरण 6: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.intentextradamo">
<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>
Intent.putExtra() के लिए समर्थित डेटा प्रकार
| विधि | डेटा प्रकार |
|---|---|
putExtra(String, String) | String |
putExtra(String, int) | int |
putExtra(String, boolean) | boolean |
putExtra(String, double) | double |
putExtra(String, float) | float |
putExtra(String, long) | long |
putExtra(String, byte) | byte |
putExtra(String, char) | char |
putExtra(String, Parcelable) | Parcelable |
putExtra(String, Serializable) | Serializable |
putExtra(String, String[]) | String Array |
putExtra(String, int[]) | int Array |
डेटा पुनर्प्राप्त करने के लिए संबंधित Getter विधियाँ
getStringExtra(key)getIntExtra(key, defaultValue)getBooleanExtra(key, defaultValue)getDoubleExtra(key, defaultValue)getParcelableExtra(key)getSerializableExtra(key)
सर्वोत्तम अभ्यास
- कुंजियों के लिए स्थिरांक का उपयोग करें: टाइपो से बचने के लिए
public static final String KEY_MESSAGE = "message_key";परिभाषित करें। - Null चेक करें: हमेशा जांचें कि Extra मौजूद है या नहीं।
- डिफ़ॉल्ट मान प्रदान करें:
getIntExtra("age", 0)जैसे ओवरलोडेड Getters का उपयोग करें। - बड़े डेटा से बचें: Intent Extras की आकार सीमा होती है (~1MB)। बड़े डेटा के लिए SharedPreferences, Database, या ViewModel का उपयोग करें।
निष्कर्ष
Intent.putExtra() Android में Activities के बीच सरल डेटा पास करने का सबसे सरल और सबसे व्यापक रूप से उपयोग किया जाने वाला तरीका है। यह बुनियादी उपयोग मामलों के लिए एकदम सही है जहां आपको कुछ प्राथमिक मान या छोटे ऑब्जेक्ट्स स्थानांतरित करने की आवश्यकता होती है।