package com.nuscomputing.ivle; import com.actionbarsherlock.app.SherlockListFragment; import com.nuscomputing.ivle.providers.WebcastItemGroupsContract; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.SimpleCursorAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; /** * Fragment to view an announcement. * @author yjwong */ public class ViewWebcastFragment extends SherlockListFragment { // {{{ properties /** TAG for logging */ public static final String TAG = "ViewWebcastFragment"; /** The list adapter */ private SimpleCursorAdapter mAdapter = null; /** The webcast ID */ private long mWebcastId = -1; // }}} // {{{ methods @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the module info view. return inflater.inflate(R.layout.view_webcast_fragment, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Obtain the webcast ID. Bundle args = getArguments(); mWebcastId = args.getLong("webcastId"); if (mWebcastId == -1) { throw new IllegalStateException("No webcast ID was passed to ViewWebcastFragment"); } // Load the module data. String[] uiBindFrom = { WebcastItemGroupsContract.ITEM_GROUP_TITLE }; int[] uiBindTo = { R.id.view_webcast_fragment_list_item_group_title }; mAdapter = new SimpleCursorAdapter( getActivity(), R.layout.view_webcast_fragment_list_item, null, uiBindFrom, uiBindTo, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER ); DataLoader loader = new DataLoader(getActivity(), mAdapter); getLoaderManager().initLoader(DataLoader.LOADER_VIEW_WEBCAST_FRAGMENT, args, loader); // Get the listview. LinearLayout layout = (LinearLayout) getActivity().findViewById(R.id.view_webcast_fragment_linear_layout); ListView listView = (ListView) layout.findViewById(android.R.id.list); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Fragment arguments. Bundle fragmentArgs = new Bundle(); fragmentArgs.putLong("webcastItemGroupId", id); // Invoke fragment to view files in the item group. FragmentTransaction transaction = getFragmentManager().beginTransaction(); Fragment fragment = new ViewWebcastItemGroupsFragment(); fragment.setArguments(fragmentArgs); transaction.addToBackStack(null); transaction.replace(R.id.view_webcast_activity_fragment_container, fragment); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.commit(); } }); // Set the list adapter. setListAdapter(mAdapter); } // }}} }