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

ফ্রাগমেন্টে বার্তা (মেসেজ) পৌছে দিন

হোস্ট একটিভিটি findFragmentById()দিয়ে Fragment কে ক্যাপচার করার মাধ্যমে ফ্রাগমেন্টে মেসেজ পৌছে দিতে পারে, তারপর সরাসরি ফ্রাগমেন্টের পাবলিক মেথড কে কল করে।

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

public static class MainActivity extends Activity
        implements HeadlinesFragment.OnHeadlineSelectedListener{
    ...

    public void onArticleSelected(int position) {
        // The user selected the headline of an article from the HeadlinesFragment
        // Do something here to display that article

        ArticleFragment articleFrag = (ArticleFragment)
                getSupportFragmentManager().findFragmentById(R.id.article_fragment);

        if (articleFrag != null) {
            // If article frag is available, we're in two-pane layout...

            // Call a method in the ArticleFragment to update its content
            articleFrag.updateArticleView(position);
        } else {
            // Otherwise, we're in the one-pane layout and must swap frags...

            // Create fragment and give it an argument for the selected article
            ArticleFragment newFragment = new ArticleFragment();
            Bundle args = new Bundle();
            args.putInt(ArticleFragment.ARG_POSITION, position);
            newFragment.setArguments(args);

            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container view with this fragment,
            // and add the transaction to the back stack so the user can navigate back
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();
        }
    }
}