| package ${packageName}; |
| |
| import android.app.Activity; |
| import android.os.Bundle; |
| <#if switchGrid == true> |
| import android.support.v4.app.Fragment; |
| import android.view.LayoutInflater; |
| <#else> |
| import android.support.v4.app.ListFragment; |
| </#if> |
| import android.view.View; |
| <#if switchGrid == true> |
| import android.view.ViewGroup; |
| import android.widget.AbsListView; |
| import android.widget.AdapterView; |
| </#if> |
| import android.widget.ArrayAdapter; |
| <#if switchGrid == true> |
| import android.widget.ListAdapter; |
| import android.widget.TextView; |
| <#else> |
| import android.widget.ListView; |
| </#if> |
| |
| import ${packageName}.dummy.DummyContent; |
| |
| /** |
| * A fragment representing a list of Items. |
| * <p /> |
| <#if switchGrid == true> |
| * Large screen devices (such as tablets) are supported by replacing the ListView |
| * with a GridView. |
| </#if> |
| * <p /> |
| * Activities containing this fragment MUST implement the {@link Callbacks} |
| * interface. |
| */ |
| <#if switchGrid == true> |
| public class ${className} extends Fragment implements AbsListView.OnItemClickListener { |
| <#else> |
| public class ${className} extends ListFragment { |
| </#if> |
| |
| <#if includeFactory> |
| // TODO: Rename parameter arguments, choose names that match |
| // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER |
| private static final String ARG_PARAM1 = "param1"; |
| private static final String ARG_PARAM2 = "param2"; |
| |
| // TODO: Rename and change types of parameters |
| private String mParam1; |
| private String mParam2; |
| |
| </#if> |
| private OnFragmentInteractionListener mListener; |
| |
| <#if switchGrid == true> |
| /** |
| * The fragment's ListView/GridView. |
| */ |
| private AbsListView mListView; |
| |
| /** |
| * The Adapter which will be used to populate the ListView/GridView with |
| * Views. |
| */ |
| private ListAdapter mAdapter; |
| |
| </#if> |
| <#if includeFactory> |
| // TODO: Rename and change types of parameters |
| public static ${className} newInstance(String param1, String param2) { |
| ${className} fragment = new ${className}(); |
| Bundle args = new Bundle(); |
| args.putString(ARG_PARAM1, param1); |
| args.putString(ARG_PARAM2, param2); |
| fragment.setArguments(args); |
| return fragment; |
| } |
| |
| </#if> |
| /** |
| * Mandatory empty constructor for the fragment manager to instantiate the |
| * fragment (e.g. upon screen orientation changes). |
| */ |
| public ${className}() { |
| } |
| |
| @Override |
| public void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| |
| <#if includeFactory> |
| if (getArguments() != null) { |
| mParam1 = getArguments().getString(ARG_PARAM1); |
| mParam2 = getArguments().getString(ARG_PARAM2); |
| } |
| </#if> |
| |
| // TODO: Change Adapter to display your content |
| <#if switchGrid == true> |
| mAdapter = new ArrayAdapter<DummyContent.DummyItem>(getActivity(), |
| android.R.layout.simple_list_item_1, android.R.id.text1, DummyContent.ITEMS); |
| <#else> |
| setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), |
| android.R.layout.simple_list_item_1, android.R.id.text1, DummyContent.ITEMS)); |
| </#if> |
| } |
| |
| <#if switchGrid == true> |
| @Override |
| public View onCreateView(LayoutInflater inflater, ViewGroup container, |
| Bundle savedInstanceState) { |
| View view = inflater.inflate(R.layout.${fragment_layout}, container, false); |
| |
| // Set the adapter |
| mListView = (AbsListView) view.findViewById(android.R.id.list); |
| ((AdapterView<ListAdapter>) mListView).setAdapter(mAdapter); |
| |
| // Set OnItemClickListener so we can be notified on item clicks |
| mListView.setOnItemClickListener(this); |
| |
| return view; |
| } |
| </#if> |
| |
| @Override |
| public void onAttach(Activity activity) { |
| super.onAttach(activity); |
| try { |
| mListener = (OnFragmentInteractionListener) activity; |
| } catch (ClassCastException e) { |
| throw new ClassCastException(activity.toString() |
| + " must implement OnFragmentInteractionListener"); |
| } |
| } |
| |
| @Override |
| public void onDetach() { |
| super.onDetach(); |
| mListener = null; |
| } |
| |
| |
| <#if switchGrid == true> |
| @Override |
| public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
| if (null != mListener) { |
| // Notify the active callbacks interface (the activity, if the |
| // fragment is attached to one) that an item has been selected. |
| mListener.onFragmentInteraction(DummyContent.ITEMS.get(position).id); |
| } |
| } |
| |
| /** |
| * The default content for this Fragment has a TextView that is shown when |
| * the list is empty. If you would like to change the text, call this method |
| * to supply the text it should use. |
| */ |
| public void setEmptyText(CharSequence emptyText) { |
| View emptyView = mListView.getEmptyView(); |
| |
| if (emptyText instanceof TextView) { |
| ((TextView) emptyView).setText(emptyText); |
| } |
| } |
| <#else> |
| @Override |
| public void onListItemClick(ListView l, View v, int position, long id) { |
| super.onListItemClick(l, v, position, id); |
| |
| if (null != mListener) { |
| // Notify the active callbacks interface (the activity, if the |
| // fragment is attached to one) that an item has been selected. |
| mListener.onFragmentInteraction(DummyContent.ITEMS.get(position).id); |
| } |
| } |
| </#if> |
| |
| /** |
| * This interface must be implemented by activities that contain this |
| * fragment to allow an interaction in this fragment to be communicated |
| * to the activity and potentially other fragments contained in that |
| * activity. |
| * <p> |
| * See the Android Training lesson <a href= |
| * "http://developer.android.com/training/basics/fragments/communicating.html" |
| * >Communicating with Other Fragments</a> for more information. |
| */ |
| public interface OnFragmentInteractionListener { |
| // TODO: Update argument type and name |
| public void onFragmentInteraction(String id); |
| } |
| |
| } |