diff options
Diffstat (limited to 'templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl')
-rw-r--r-- | templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl b/templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl new file mode 100644 index 0000000..2e130a5 --- /dev/null +++ b/templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl @@ -0,0 +1,195 @@ +package ${packageName}; + +import android.app.Activity; +import android.os.Bundle; +<#if switchGrid == true> +import android${SupportPackage}.app.Fragment; +import android.view.LayoutInflater; +<#else> +import android${SupportPackage}.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> +<#if applicationPackage??>import ${applicationPackage}.R;</#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); + } + +} |