package what.whatandroid.announcements; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.view.View; import api.announcements.Announcement; import what.whatandroid.callbacks.ViewAnnouncementCallbacks; import java.util.ArrayList; import java.util.List; /** * BlogPostsFragment displays a list of the blog posts and snippets of the body text * re-uses the layouts from the Announcements */ public class AnnouncementsListFragment extends ListFragment { private AnnouncementsAdapter adapter; private List<Announcement> announcements; private ViewAnnouncementCallbacks callbacks; /** * Use this factory method to create a new instance of the fragment displaying the list of announcements * * @param announcements the announcements to display * @param callbacks callbacks to use to set the detail announcement being shown */ public static AnnouncementsListFragment newInstance(List<Announcement> announcements, ViewAnnouncementCallbacks callbacks){ AnnouncementsListFragment fragment = new AnnouncementsListFragment(); //When would this be null? fragment.announcements = announcements == null ? new ArrayList<Announcement>() : announcements; fragment.callbacks = callbacks; return fragment; } public AnnouncementsListFragment(){ // Required empty public constructor } public void setAnnouncements(List<Announcement> announcements){ this.announcements = announcements; adapter.clear(); adapter.addAll(announcements); adapter.notifyDataSetChanged(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); adapter = new AnnouncementsAdapter(getActivity(), announcements, callbacks); setListAdapter(adapter); } @Override public void onViewCreated(View view, Bundle savedInstanceState){ super.onViewCreated(view, savedInstanceState); getListView().setOnItemClickListener(adapter); } }