Sponsorizzato

অ্যান্ড্রয়েড ইনটেন্ট

0
7

একটা অ্যাপ থেকে আরেকটা অ্যাপ বা একটা অ্যাপের বিভিন্ন এক্টিভিটির মধ্যে যোগাযোগের জন্য ইন্টেন্ট ব্যবহার করা হয়। যেমন আমরা যখন ফেসবুক থেকে ক্যামেরা বা গ্যালারি ওপেন করি, তখন আমাদের সিলেক্ট করা ছবিটি ফেসবুক অ্যাপে রিটার্ণ করে। এটা হচ্ছে ইন্টেন্টের কাজ। ইন্টেন্ট দিয়ে নিজের কাজ গুলো করা যায়ঃ

  1. Start an Activity
  2. Start sub-activity.
  3. Start a Service.

ইন্টেন্ট দুই প্রকার। একটা হচ্ছে Explicit Intent আরেকটা Implicit intent। Explicit Intent এ আমরা সরাসরি বলে দেই কোন এক্টিভিটি বা কোন কোন অ্যাপ ওপেন করতে হবে। আর Implicit Intent এ আমরা বলে দেই না কোন অ্যাপ বা কোন এক্টিভিটি ওপেন করতে হবে। ব্যবহারকারীকে তার পছন্দ অনুযায়ী সিলেক্ট করতে দেই।

 

আমরা সিম্পল একটা অ্যাপ তৈরি করব ইন্টেন্ট সম্পর্কে জানার জন্য। যা অ্যাপের একটা এক্টিভিটি থেকে আরেকটা এক্টিভিটিতে কিছু ডেটা পাস করবে। এ জন্য আমরা একটা নতুন এন্ড্রয়েড প্রজেক্ট তৈরি করব। প্রতিটা প্রজেক্টেই একটা ডিফল্ট এক্টিভিটি থাকে। আমাদের আরেকটা এক্টিভিটি লাগবে। কিভাবে নতুন একটা এক্টিভিটি যুক্ত ক্রয়া যায়, তা   এন্ড্রয়েড মাল্টি একটিভিটি লেখাটিতে  বিস্তারিত লেখা রয়েছে।

ঐ টিউটোরিয়ালে আমরা দেখেছি কিভাবে নতুন একটা এক্টিভিটি ওপেন করতে হয়। এখন আমরা দেখব কিভাবে একটা এক্টিভিটি ওপেন করার সময় কোন ডেটা পাস করতে হয়। ডেটা পাস করা সহজ। কী ভ্যালু পেয়ারে ডেটা গুলো পাঠাতে হয়। প্রতিটা ডেটার একটা করে কী থাকবে। নিচের মত করেঃ

intent.putExtra("message","Message from first activity"); 

এভাবে যত ইচ্ছে তত গুলো ডেটা আমরা পাস করতে পারব।

নতুন যে এক্টিভিটি ওপেন হবে, তা থেকে আমাদের আমার ডেটা গুলো রিসিভ করতে হবে। ডেটা রিসিভ করব আমরা যে কী ব্যবহার করেছি,তা দিয়ে। এভাবেঃ

String message= intent.getStringExtra("message");

এতটুকুই। সহজ না? এরপর আমরা চাইলে যে কোন যায়গায় ঐ ডেটা ব্যবহার করতে পারি।

ফাইল গুলোঃ
MainActivity.java:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button button;

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

        button = (Button) findViewById(R.id.button);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                intent.putExtra("message","Message from first activity");
                 startActivity(intent);
            }
        });
    }
}

SecondActivity.java:

 

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
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);

        Intent intent = this.getIntent();
        String message= intent.getStringExtra("message");

        textView = (TextView) findViewById(R.id.textView);

       textView.setText(message);
    }

}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="me.jakir.simpleintent.MainActivity">

    <Button android:text="Pass Data" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="12dp" android:layout_marginStart="12dp" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" />
</RelativeLayout>


activity_second.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="me.jakir.simpleintent.MainActivity">


    <TextView android:text="Message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="38dp" android:layout_marginStart="38dp" android:layout_marginTop="58dp" android:id="@+id/textView" />
</RelativeLayout>

প্রজেক্টের সোর্স কোড পাওয়া যাবে গিট রিপোজিটোরিতে।

Cerca
Categorie
Leggi tutto
Nulled
Monolith vs Microservices: Pros and Cons Explained
Updated:...
By Nettumi 2026-09-21 04:43:54 0 39
Tech
ওয়ার্ডপ্রেস কমেন্ট ফরম থেকে You may use these HTML tags and attributes সহজেই রিমুভ করা।
খুবি ছোট একটা টুইট এবং সহজ একটা বিষয়। হয়তো অনেকেই জানেন। ডিফল্ট ভাবে সব প্রায় সব গুলো থিমের...
By Nettumi 2026-09-30 18:44:11 0 5
Nulled
ADoctor v1.4.0 Nulled - Hospital Doctor Booking Android and iOS App | Website | Admin Panel Source
ADoctor v1.4.0 Nulled – Hospital Doctor Booking Android and iOS App | Website | Admin...
By Nettumi 2026-09-17 18:41:52 0 262
Nulled
MightyTaxi v17.0 - Flutter Online Taxi Booking Full Solution | User App | Admin Laravel Panel | Driver App Source Code
MightyTaxi v17.0 – Flutter Online Taxi Booking Full Solution | User App | Admin Laravel...
By Nettumi 2026-09-17 18:30:26 0 24
Nulled
ঈদুল ফিতর উপলক্ষে বিডিশেপার্স দিচ্ছে Hosting এ ৬০ পর্যন্ত ক্যাশব্যাক এবং সাথে ফ্রী Domain | Techtunes | টেকটিউনস
তৈরী করুন উইন্ডোজের লাইভ সিডি এস এম মেহেদী আকরাম
By Nettumi 2026-09-25 03:22:55 0 42
‎ ‎ ‎
Nettumi https://nettumi.com