কম্পিউটার টিউটোরিয়াল

Android-এ সেকেন্ডারি অ্যাক্টিভিটি থেকে মেইন অ্যাক্টিভিটিতে ডেটা পাঠানোর পদ্ধতি


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 আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন। দুটি সংখ্যা লিখে "দ্বিতীয় অ্যাক্টিভিটি খুলুন" বাটনে ক্লিক করুন, তারপর যোগ বা বিয়োগ বাটনে ক্লিক করলে ফলাফল মেইন অ্যাক্টিভিটিতে ফেরত আসবে।

Android-এ সেকেন্ডারি অ্যাক্টিভিটি থেকে মেইন অ্যাক্টিভিটিতে ডেটা পাঠানোর পদ্ধতি

Android-এ সেকেন্ডারি অ্যাক্টিভিটি থেকে মেইন অ্যাক্টিভিটিতে ডেটা পাঠানোর পদ্ধতি

Android-এ সেকেন্ডারি অ্যাক্টিভিটি থেকে মেইন অ্যাক্টিভিটিতে ডেটা পাঠানোর পদ্ধতি

  1. অ্যান্ড্রয়েড ListView-এ ক্লিক ইভেন্ট হ্যান্ডল করার পদ্ধতি

  2. অ্যান্ড্রয়েডে অ্যাপের ভাষা প্রোগ্রামেটিক্যালি পরিবর্তন করার উপায়

  3. অ্যান্ড্রয়েডে GPS প্রোগ্রামেটিক্যালি সক্ষম/অক্ষম করার পদ্ধতি

  4. এন্ড্রয়েডে ফাইল সংযুক্ত করে ইমেইল পাঠানোর পদ্ধতি