Serializable के साथ एक्टिविटीज के बीच ऑब्जेक्ट पास करना
यह उदाहरण दर्शाता है कि Serializable इंटरफेस को लागू करके कस्टम ऑब्जेक्ट को इंटेंट के माध्यम से एक एक्टिविटी से दूसरी एक्टिविटी में कैसे भेजें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: मेन लेआउट में EditText और बटन
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">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:hint="अपना संदेश दर्ज करें" />
<Button
android:id="@+id/btnSendObj"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ऑब्जेक्ट को दूसरी एक्टिविटी में भेजें"
android:layout_centerInParent="true"
android:layout_below="@id/editText"
android:layout_marginTop="15dp"/>
</RelativeLayout>
चरण 3: Serializable मॉडल क्लास बनाएं
Message.java:
import java.io.Serializable;
public class Message implements Serializable {
private static final long serialVersionUID = 1L;
private String message;
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
@Override
public String toString() { return "Message [message = " + message + "]"; }
}
चरण 4: MainActivity.java - ऑब्जेक्ट भेजें
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
button = findViewById(R.id.btnSendObj);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
Message message = new Message();
message.setMessage(editText.getText().toString());
intent.putExtra("message", message);
startActivity(intent);
}
});
}
}
चरण 5: SecondActivity.java - ऑब्जेक्ट प्राप्त करें
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
textView = findViewById(R.id.textView);
Intent intent = getIntent();
Message message = (Message) intent.getSerializableExtra("message");
textView.setText(message.toString());
}
}
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:id="@+id/textView"
android:textSize="16sp"
android:textStyle="bold|italic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>
चरण 6: मैनिफेस्ट में दोनों एक्टिविटी घोषित करें
<activity android:name=".SecondActivity"></activity>
<activity android:name=".MainActivity">
<intent-filter>...</intent-filter>
</activity>
ऐप चलाएं
संदेश टाइप करें, "भेजें" दबाएं, दूसरी एक्टिविटी में ऑब्जेक्ट डेटा देखें।