diff options
author | Adam Koch <akoch@android.com> | 2013-01-14 16:14:30 -0500 |
---|---|---|
committer | Adam Koch <akoch@android.com> | 2013-01-22 11:38:38 -0500 |
commit | f362609bb25092e8a431dc4d7701169dbb8bd431 (patch) | |
tree | a78881b64f15220450084c0176e52d6419f7562f /templates/other/BlankFragment/root | |
parent | a737845cdcf443843a3bc112a66f0d560b1e007a (diff) | |
download | sdk-f362609bb25092e8a431dc4d7701169dbb8bd431.zip sdk-f362609bb25092e8a431dc4d7701169dbb8bd431.tar.gz sdk-f362609bb25092e8a431dc4d7701169dbb8bd431.tar.bz2 |
New "Blank Fragment" ADT template.
This change adds a new Blank Fragment template in the 'other'
category, that creates an empty Fragment class with the option of
generating some commonly used boilerplate code such as fragment
factory methods, interface callbacks and an empty layout xml.
Change-Id: I4c68b9ddb6f7915ca8e75b2c6372664d39e216f5
Diffstat (limited to 'templates/other/BlankFragment/root')
3 files changed, 148 insertions, 0 deletions
diff --git a/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl b/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl new file mode 100644 index 0000000..3e04f05 --- /dev/null +++ b/templates/other/BlankFragment/root/res/layout/fragment_blank.xml.ftl @@ -0,0 +1,13 @@ +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".${className}"> + + <!-- TODO: Update blank fragment layout --> + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:text="@string/hello_blank_fragment" /> + +</FrameLayout> diff --git a/templates/other/BlankFragment/root/res/values/strings.xml b/templates/other/BlankFragment/root/res/values/strings.xml new file mode 100644 index 0000000..c8d8b1a --- /dev/null +++ b/templates/other/BlankFragment/root/res/values/strings.xml @@ -0,0 +1,6 @@ +<resources> + +<!-- TODO: Remove or change this placeholder text --> + <string name="hello_blank_fragment">Hello blank fragment</string> + +</resources> diff --git a/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl b/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl new file mode 100644 index 0000000..6b3fb1e --- /dev/null +++ b/templates/other/BlankFragment/root/src/app_package/BlankFragment.java.ftl @@ -0,0 +1,129 @@ +package ${packageName}; + +<#if includeCallbacks>import android.app.Activity;</#if> +<#if includeCallbacks>import android.net.Uri;</#if> +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +<#if !includeLayout>import android.widget.TextView;</#if> + +/** + * A simple {@link android.support.v4.app.Fragment} subclass. +<#if includeCallbacks> + * Activities that contain this fragment must implement the + * {@link ${className}.OnFragmentInteractionListener} interface + * to handle interaction events. +</#if> +<#if includeFactory> + * Use the {@link ${className}#newInstance} factory method to + * create an instance of this fragment. +</#if> + * + */ +public class ${className} extends Fragment { +<#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> + +<#if includeCallbacks> + private OnFragmentInteractionListener mListener; +</#if> + +<#if includeFactory> + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment ${className}. + */ + // TODO: Rename and change types and number 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> + public ${className}() { + // Required empty public constructor + } + +<#if includeFactory> + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } +</#if> + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { +<#if includeLayout> + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_${classToResource(className)}, container, false); +<#else> + TextView textView = new TextView(getActivity()); + textView.setText(R.string.hello_blank_fragment); + return textView; +</#if> + } + +<#if includeCallbacks> + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @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; + } + + /** + * 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(Uri uri); + } +</#if> + +} |