বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি ইন্টারফেস নির্ধারন করা

একটি ফ্রাগমেন্টকে এর একটিভিটি পর্যন্ত যোগাযোগ করাটা অনুমোদন করতে আপনি ফ্রাগমেন্ট ক্লাসে একটা ইন্টারপেস নির্ধারণ করতে পারেন এবং একটিবিটির মধ্যে এর বাস্তবায়ন করুন। ফ্রাগমেন্টটি এর onAttach() লাইফসাইকেল মেথড সময়ে ইন্টারফেস বাস্তবায়নকে ক্যাপচার কওে এবং তারপর একটিভিটির সাথে যোগাযোগ স্থাপনের জন্য ইন্টারফেস মেথডকে কল করে।

এখানে একটিভিটি কমিউনিকেশনে ফ্রাগমেন্টের একটি উদাহরণ দেয়া হলো:

public class HeadlinesFragment extends ListFragment {
    OnHeadlineSelectedListener mCallback;

    // Container Activity must implement this interface
    public interface OnHeadlineSelectedListener {
        public void onArticleSelected(int position);
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        // This makes sure that the container activity has implemented
        // the callback interface. If not, it throws an exception
        try {
            mCallback = (OnHeadlineSelectedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement OnHeadlineSelectedListener");
        }
    }

    ...
}

এখন ফ্রাগমেন্ট OnHeadlineSelectedListener ইন্টারফেসের mCallback ইনসটন্সে ব্যবহার করে onArticleselected() কে কল করার মাধ্যমে একটিভিটিতে ম্যাসেজ/বার্তা পাঠাতে পারে।

উদাহরণস্বরূপ, নি¤েœাক্ত ফ্রাগমেন্টের মধ্যেকার মেথডটিকে করা হয় যখন ইউজার লিস্ট আইটেমে ক্লিক করে। ফ্রাগমেন্টটি প্যারেন্ট একটিভিটিতে ইভেন্টটি পৌছে দিতে কলব্যাক ইন্টারফেস ব্যবহার করে।

  @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        // Send the event to the host activity
        mCallback.onArticleSelected(position);
    }