according to 
http://developer.android.com/training/basics/fragments/communicating.html 
The example described how to communicate with fragments via override the 
onAttach in the fragment and try to casting the activity to the interface 
we defined with a lot of hope that casting will work.

I think Fragment is kind of 'User Control' so when we create a new 
instance, we determined explicitly if we want a certain action like we used 
when we create a new button and we wanted this button to be clickable so we 
adding the ability button.setOnClickListener(...)

i think this kind of implementation more intuitive for developers and i do 
not force the activity to implement the interface.
So i suggest an implementation to communicate between the two Fragments 
like we used to code 

public class HeadlinesFragment extends ListFragment {
    OnHeadlineSelectedListener mCallback;

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

    @Override
    public void setOnHeadlineSelectedListener(OnHeadlineSelectedListener 
callback) {
       mCallback = callback
    }

    ...
}


and in the main activity or where you will use this fragment if you want 
you can send your listener explicit

public class MainActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news_articles);

        // Check that the activity is using the layout version with
        // the fragment_container FrameLayout
        if (findViewById(R.id.fragment_container) != null) {

            // However, if we're being restored from a previous state,
            // then we don't need to do anything and should return or else
            // we could end up with overlapping fragments.
            if (savedInstanceState != null) {
                return;
            }

            // Create a new Fragment to be placed in the activity layout
            HeadlinesFragment firstFragment = 
HeadlinesFragment.newInstance(getIntent().getExtras())
          firstFragment.setOnHeadlineSelectedListener(...)//Depend how you 
define to handle the listener 1-The activity will implement the interface 
2-Annonymus function

           // Add the fragment to the 'fragment_container' FrameLayout
           
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, 
firstFragment).commit();

        }
    }
}




-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/b4f46491-b127-4bb6-940b-c47114c4b31f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to