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