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() {
61e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
624557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            public void onClick(View v) {
633261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn                mPager.setCurrentItem(0);
643261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn            }
653261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        });
663261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        button = (Button)findViewById(R.id.goto_last);
673261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn        button.setOnClickListener(new OnClickListener() {
68e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
693261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn            public void onClick(View v) {
703261cccf344d584152f0ec681264d0cb7e343bf5Dianne Hackborn                mPager.setCurrentItem(NUM_ITEMS-1);
714557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            }
724557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        });
734557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
744557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
754557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    public static class MyAdapter extends FragmentStatePagerAdapter {
764557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public MyAdapter(FragmentManager fm) {
774557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super(fm);
784557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
794557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
804557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
814557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public int getCount() {
824557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return NUM_ITEMS;
834557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
844557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
854557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
864557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public Fragment getItem(int position) {
874557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return ArrayListFragment.newInstance(position);
884557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
894557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
904557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
914557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    public static class ArrayListFragment extends ListFragment {
924557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        int mNum;
934557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
944557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
954557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * Create a new instance of CountingFragment, providing "num"
964557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * as an argument.
974557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
984557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        static ArrayListFragment newInstance(int num) {
994557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            ArrayListFragment f = new ArrayListFragment();
1004557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1014557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            // Supply num input as an argument.
1024557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            Bundle args = new Bundle();
1034557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            args.putInt("num", num);
1044557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            f.setArguments(args);
1054557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1064557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return f;
1074557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1084557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1094557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
1104557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * When creating, retrieve this instance's number from its arguments.
1114557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
1124557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1134557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onCreate(Bundle savedInstanceState) {
1144557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super.onCreate(savedInstanceState);
1154557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
1164557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1174557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1184557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        /**
1194557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * The Fragment's UI is just a simple text view showing its
1204557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         * instance number.
1214557342eeab7018e2edece1d3265819737d078fcDianne Hackborn         */
1224557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1234557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public View onCreateView(LayoutInflater inflater, ViewGroup container,
1244557342eeab7018e2edece1d3265819737d078fcDianne Hackborn                Bundle savedInstanceState) {
1254557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
1264557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            View tv = v.findViewById(R.id.text);
1274557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            ((TextView)tv).setText("Fragment #" + mNum);
1284557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            return v;
1294557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1304557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1314557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1324557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onActivityCreated(Bundle savedInstanceState) {
1334557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            super.onActivityCreated(savedInstanceState);
1344557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            setListAdapter(new ArrayAdapter<String>(getActivity(),
1354557342eeab7018e2edece1d3265819737d078fcDianne Hackborn                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
1364557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1374557342eeab7018e2edece1d3265819737d078fcDianne Hackborn
1384557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        @Override
1394557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        public void onListItemClick(ListView l, View v, int position, long id) {
1404557342eeab7018e2edece1d3265819737d078fcDianne Hackborn            Log.i("FragmentList", "Item clicked: " + id);
1414557342eeab7018e2edece1d3265819737d078fcDianne Hackborn        }
1424557342eeab7018e2edece1d3265819737d078fcDianne Hackborn    }
1434557342eeab7018e2edece1d3265819737d078fcDianne Hackborn}
144e0ecf5974e4bd81f07e38f11648896f9301c7401Dianne Hackborn//END_INCLUDE(complete)
145