startActivityForResult() ব্যবহার করে ডেটা রিটার্ন করার উদাহরণ
এই উদাহরণটি দেখায় কিভাবে একটি অ্যাক্টিভিটি থেকে অন্য অ্যাক্টিভিটি খুলে, সেখানে ক্যালকুলেশন করে ফলাফল মেইন অ্যাক্টিভিটিতে ফেরত পাঠানো যায়। দ্রষ্টব্য: Android X-এ `startActivityForResult` ডিপ্রিকেট, বর্তমানে `ActivityResultContracts` ব্যবহার করা উচিত।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: মেইন লেআউট XML (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:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/editTextNumber1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="সংখ্যা ১"
android:inputType="number" />
<EditText
android:id="@+id/editTextNumber2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="সংখ্যা ২"
android:inputType="number" />
<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ফলাফল"
android:textSize="30sp" />
<Button
android:id="@+id/btnOpenActivity2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="দ্বিতীয় অ্যাক্টিভিটি খুলুন" />
</LinearLayout>
ধাপ ৩: MainActivity.java-এ লজিক লিখুন
src/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;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView textViewResult;
private EditText editTextNumber1;
private EditText editTextNumber2;
Button btnOpen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewResult = findViewById(R.id.textViewResult);
editTextNumber1 = findViewById(R.id.editTextNumber1);
editTextNumber2 = findViewById(R.id.editTextNumber2);
btnOpen = findViewById(R.id.btnOpenActivity2);
btnOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String num1Str = editTextNumber1.getText().toString();
String num2Str = editTextNumber2.getText().toString();
if (num1Str.isEmpty() || num2Str.isEmpty()) {
Toast.makeText(MainActivity.this, "দুটি সংখ্যা লিখুন", Toast.LENGTH_SHORT).show();
} else {
int number1 = Integer.parseInt(num1Str);
int number2 = Integer.parseInt(num2Str);
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("number1", number1);
intent.putExtra("number2", number2);
startActivityForResult(intent, 1); // রিকোয়েস্ট কোড ১
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
int result = data.getIntExtra("result", 0);
textViewResult.setText(String.valueOf(result));
} else if (resultCode == RESULT_CANCELED) {
textViewResult.setText("কিছু নির্বাচন করা হয়নি");
}
}
}
}
ধাপ ৪: সেকেন্ড অ্যাক্টিভিটি লেআউট (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:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">
<TextView
android:id="@+id/textViewNumbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="সংখ্যাগুলো: "
android:textSize="30sp" />
<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="যোগ করুন" />
<Button
android:id="@+id/buttonSubtract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="বিয়োগ করুন" />
</LinearLayout>
ধাপ ৫: SecondActivity.java-এ লজিক লিখুন
নতুন SecondActivity.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.TextView;
public class SecondActivity extends AppCompatActivity {
TextView textViewNumber;
Button buttonAdd, buttonSubtract;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
final int number1 = intent.getIntExtra("number1", 0);
final int number2 = intent.getIntExtra("number2", 0);
textViewNumber = findViewById(R.id.textViewNumbers);
textViewNumber.setText("সংখ্যাগুলো: " + number1 + ", " + number2);
buttonAdd = findViewById(R.id.buttonAdd);
buttonSubtract = findViewById(R.id.buttonSubtract);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int result = number1 + number2;
Intent resultIntent = new Intent();
resultIntent.putExtra("result", result);
setResult(RESULT_OK, resultIntent);
finish();
}
});
buttonSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int result = number1 - number2;
Intent resultIntent = new Intent();
resultIntent.putExtra("result", result);
setResult(RESULT_OK, resultIntent);
finish();
}
});
}
}
ধাপ ৬: 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=".SecondActivity"></activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
অ্যাপ্লিকেশন চালানোর পদ্ধতি
আপনার Android ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের activity ফাইল খুলে টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন। দুটি সংখ্যা লিখে "দ্বিতীয় অ্যাক্টিভিটি খুলুন" বাটনে ক্লিক করুন, তারপর যোগ বা বিয়োগ বাটনে ক্লিক করলে ফলাফল মেইন অ্যাক্টিভিটিতে ফেরত আসবে।


