অ্যান্ড্রয়েড ফ্র্যাগমেন্ট – Android Fragment – Java

ফ্র্যাগমেন্ট ব্যবহার করার আগে আমাদের ফ্র্যাগমেন্ট তৈরি করতে হবে। ফ্র্যাগমেন্ট তৈরি করতে আমাদের একটা XML লেআউট ফাইল লাগবে। এবং একটি জাভা ক্লাস তৈরি করতে হবে। এর পরের কাজ হচ্ছে ফ্র্যাগমেন্টের ব্যবহার। আমরা দুই ভাবে ফ্র্যাগমেন্ট ব্যবহার করতে পারি। একটি হচ্ছে XML থেকে। আরেকটি হচ্ছে Java কোড থেকে। এখন দেখব কিভাবে Java থেকে ফ্র্যাগমেন্ট ব্যবহার করা যায়। ফ্র্যাগমেন্ট ব্যবহার করার জন্য প্রথমে আমরা একটি লেআউট ফাইল তৈরি করে নি। যেমন fragment.xml

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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"
 >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello from Fragment" />
</RelativeLayout>

আমাদের ফ্র্যাগমেন্ট লেআউটে একটি টেক্সট ভিউ রয়েছে। আর যার মধ্যে লেখা রয়েছে Hello from fragment. যখন আমরা আমাদের এই ফ্র্যাগমেন্ট লেআউটটি লোড করব, তখন আমাদের এই লেখাটি দেখাবে।

এরপর আমরা একটা জাভা ক্লাস তৈরি করব। যেমন MyFragment.java

 

package me.jakir.fragmentfromjava;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class MyFragment extends Fragment {


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View view = inflater.inflate(R.layout.fragment, container, false);
        return view;
    }
}

 

এই ক্লাস থেকে আমরা ফ্র্যাগমেন্ট ব্যবহার করব। তাই আমাদের Fragment ক্লাসকে extend করতে হবে। এরপরের কাজ হচ্ছে OnCreateView ওভাররাইড করা। এখানে তিনটে প্যারামিটার পাস করতে হয়। একটা হচ্ছে লেআউট। আমাদের ফ্র্যাগমেন্ট লেআউট। এরপর হচ্ছে container হচ্ছে ভিউগ্রুপ। যেটা আমাদের লেআউট কন্টেইন করবে। এবং শেষে SaveInstanceState Bundle।

 

আমাদের ফ্র্যাগমেন্ট তৈরি হয়ে গিয়েছে। এবার আমরা এটি ব্যবহার করতে পারি। আমরা Java থেকে ব্যবহার করব। তার জন্য আমাদের activity_main.xml ফাইলে কিছু কোড পরিবর্তন করব। আমরা RelativeLayout করে পরিবর্তন করে করব FrameLayout এবং একটি আইডি সেট করে দিব।

 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainContainer"
    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.fragmentfromjava.MainActivity">


</FrameLayout>

এভারের কাজ হচ্ছে জাভা থেকে ফ্র্যাগমেন্ট লোড করা। ফ্র্যাগমেন্ট জাভা কোড থেকে লোড করার জন্য আমরা প্রথমে আমাদের ফ্র্যাগমেন্ট ক্লাসের একটা ইন্সট্যান্স তৈরি করে নিব। এবং এরপর FragmentManager এর মাধ্যমে আমরা তা আমাদের  মেইন লেআউটে যুক্ত করব।

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

        MyFragment fragment = new  MyFragment();

        getFragmentManager().beginTransaction().add(R.id.mainContainer, fragment).commit();


    }
}

এখন যদি আমরা প্রোগ্রামটি রান করি, তাহলে আমরা দেখতে পাবো আমাদের ফ্র্যাগমেন্ট দেখাচ্ছে।

 

2 thoughts on “অ্যান্ড্রয়েড ফ্র্যাগমেন্ট – Android Fragment – Java”

    • ফ্র্যাগমেন্ট হচ্ছে ইউজার ইন্টারফেস এর অংশ। আপনি চাইলে একই এক্টিভিটিতে একাধিক ফ্র্যাগমেন্ট যুক্ত করতে পারেন। চাইলে একটা ফ্র্যাগমেন্ট হাইড করে রাখতে পারেন।

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

Leave a Reply