14557342eeab7018e2edece1d3265819737d078fcDianne Hackborn/*
24557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * Copyright (C) 2011 The Android Open Source Project
34557342eeab7018e2edece1d3265819737d078fcDianne Hackborn *
44557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
54557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * you may not use this file except in compliance with the License.
64557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * You may obtain a copy of the License at
74557342eeab7018e2edece1d3265819737d078fcDianne Hackborn *
84557342eeab7018e2edece1d3265819737d078fcDianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
94557342eeab7018e2edece1d3265819737d078fcDianne Hackborn *
104557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * Unless required by applicable law or agreed to in writing, software
114557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
124557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * See the License for the specific language governing permissions and
144557342eeab7018e2edece1d3265819737d078fcDianne Hackborn * limitations under the License.
154557342eeab7018e2edece1d3265819737d078fcDianne Hackborn */
164557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
174557342eeab7018e2edece1d3265819737d078fcDianne Hackbornpackage com.example.android.supportv13.app;
184557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
194557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport com.example.android.supportv13.Cheeses;
204557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport com.example.android.supportv13.R;
214557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
224557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.support.v13.app.FragmentStatePagerAdapter;
238f9eb4ae643b8c9e4cace468f9b7d0569e9afe33Dianne Hackbornimport android.support.v4.view.ViewPager;
244557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
254557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.os.Bundle;
264557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.app.Activity;
274557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.app.Fragment;
284557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.app.FragmentManager;
294557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.app.ListFragment;
304557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.util.Log;
314557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.view.LayoutInflater;
324557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.view.View;
334557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.view.ViewGroup;
344557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.view.View.OnClickListener;
354557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.widget.ArrayAdapter;
364557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.widget.Button;
374557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.widget.ListView;
384557342eeab7018e2edece1d3265819737d078fcDianne Hackbornimport android.widget.TextView;
394557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
40e0ecf5974e4bd81f07e38f11648896f9301c7401Dianne Hackborn//BEGIN_INCLUDE(complete)
414557342eeab7018e2edece1d3265819737d078fcDianne Hackbornpublic class FragmentStatePagerSupport extends Activity {
424557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    static final int NUM_ITEMS = 10;
434557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
444557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    MyAdapter mAdapter;
454557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
464557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    ViewPager mPager;
474557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
484557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    @Override
494557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    protected void onCreate(Bundle savedInstanceState) {
504557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        super.onCreate(savedInstanceState);
514557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        setContentView(R.layout.fragment_pager);
524557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
534557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        mAdapter = new MyAdapter(getFragmentManager());
544557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
554557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        mPager = (ViewPager)findViewById(R.id.pager);
564557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        mPager.setAdapter(mAdapter);
574557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
584557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        // Watch for button clicks.
593261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        Button button = (Button)findViewById(R.id.goto_first);
604557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        button.setOnClickListener(new OnClickListener() {
614557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            public void onClick(View v) {
623261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn                mPager.setCurrentItem(0);
633261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn            }
643261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        });
653261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        button = (Button)findViewById(R.id.goto_last);
663261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        button.setOnClickListener(new OnClickListener() {
673261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn            public void onClick(View v) {
683261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn                mPager.setCurrentItem(NUM_ITEMS-1);
694557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            }
704557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        });
714557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
724557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
734557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    public static class MyAdapter extends FragmentStatePagerAdapter {
744557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public MyAdapter(FragmentManager fm) {
754557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super(fm);
764557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
774557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
784557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
794557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public int getCount() {
804557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return NUM_ITEMS;
814557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
824557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
834557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
844557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public Fragment getItem(int position) {
854557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return ArrayListFragment.newInstance(position);
864557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
874557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
884557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
894557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    public static class ArrayListFragment extends ListFragment {
904557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        int mNum;
914557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
924557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
934557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * Create a new instance of CountingFragment, providing "num"
944557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * as an argument.
954557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
964557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        static ArrayListFragment newInstance(int num) {
974557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            ArrayListFragment f = new ArrayListFragment();
984557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
994557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            // Supply num input as an argument.
1004557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            Bundle args = new Bundle();
1014557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            args.putInt("num", num);
1024557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            f.setArguments(args);
1034557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1044557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return f;
1054557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1064557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1074557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
1084557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * When creating, retrieve this instance's number from its arguments.
1094557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
1104557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1114557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onCreate(Bundle savedInstanceState) {
1124557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super.onCreate(savedInstanceState);
1134557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
1144557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1154557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1164557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
1174557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * The Fragment's UI is just a simple text view showing its
1184557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * instance number.
1194557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
1204557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1214557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public View onCreateView(LayoutInflater inflater, ViewGroup container,
1224557342eeab7018e2edece1d3265819737d078fcDianne Hackborn                Bundle savedInstanceState) {
1234557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
1244557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            View tv = v.findViewById(R.id.text);
1254557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            ((TextView)tv).setText("Fragment #" + mNum);
1264557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return v;
1274557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1284557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1294557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1304557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onActivityCreated(Bundle savedInstanceState) {
1314557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super.onActivityCreated(savedInstanceState);
1324557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            setListAdapter(new ArrayAdapter<String>(getActivity(),
1334557342eeab7018e2edece1d3265819737d078fcDianne Hackborn                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
1344557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1354557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1364557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1374557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onListItemClick(ListView l, View v, int position, long id) {
1384557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            Log.i("FragmentList", "Item clicked: " + id);
1394557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1404557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
1414557342eeab7018e2edece1d3265819737d078fcDianne Hackborn}
142e0ecf5974e4bd81f07e38f11648896f9301c7401Dianne Hackborn//END_INCLUDE(complete)
143