summaryrefslogtreecommitdiff
path: root/templates/other/ListFragment/root/src/app_package/ListFragment.java.ftl
diff options
context:
space:
mode:
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.ftl195
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);
+ }
+
+}