1c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/* 2c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Copyright (C) 2011 The Android Open Source Project 3c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 4c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * you may not use this file except in compliance with the License. 6c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * You may obtain a copy of the License at 7c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 8c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 10c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Unless required by applicable law or agreed to in writing, software 11c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * See the License for the specific language governing permissions and 14c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * limitations under the License. 15c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 16c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 17c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpackage com.example.android.supportv4.app; 18c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 19b1b8c06afc67ea8da6e390dc5be84182d839ede5Dianne Hackbornimport com.example.android.supportv4.Cheeses; 20c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport com.example.android.supportv4.R; 21c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 22c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.os.Bundle; 23c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.support.v4.app.Fragment; 24c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.support.v4.app.FragmentActivity; 2502e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackbornimport android.support.v4.app.FragmentManager; 2602e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackbornimport android.support.v4.app.FragmentPagerAdapter; 27c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.support.v4.app.ListFragment; 2802e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackbornimport android.support.v4.view.ViewPager; 29c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.util.Log; 30c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.LayoutInflater; 31c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.View; 32c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.ViewGroup; 33c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.view.View.OnClickListener; 34c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.ArrayAdapter; 35c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.Button; 36c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.ListView; 37c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.TextView; 38c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 39a506d183f617f84df878c96fff54b532812cd6d7Dianne Hackborn//BEGIN_INCLUDE(complete) 4002e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackbornpublic class FragmentPagerSupport extends FragmentActivity { 41c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn static final int NUM_ITEMS = 10; 42c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 4302e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn MyAdapter mAdapter; 4402e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn 4502e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn ViewPager mPager; 46c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 47c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 48c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn protected void onCreate(Bundle savedInstanceState) { 49c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreate(savedInstanceState); 50c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn setContentView(R.layout.fragment_pager); 51c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 5202e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn mAdapter = new MyAdapter(getSupportFragmentManager()); 5302e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn 5402e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn mPager = (ViewPager)findViewById(R.id.pager); 5502e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn mPager.setAdapter(mAdapter); 56c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 57c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn // Watch for button clicks. 58af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn Button button = (Button)findViewById(R.id.goto_first); 59c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn button.setOnClickListener(new OnClickListener() { 60e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 61c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onClick(View v) { 62af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn mPager.setCurrentItem(0); 63af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn } 64af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn }); 65af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn button = (Button)findViewById(R.id.goto_last); 66af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn button.setOnClickListener(new OnClickListener() { 67e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 68af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn public void onClick(View v) { 69af846a1f43fc6779d184e91ccb26e790e87bcabaDianne Hackborn mPager.setCurrentItem(NUM_ITEMS-1); 70c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 71c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn }); 72c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 73c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 7402e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn public static class MyAdapter extends FragmentPagerAdapter { 7502e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn public MyAdapter(FragmentManager fm) { 7602e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn super(fm); 7702e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn } 78c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 7902e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn @Override 8002e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn public int getCount() { 8102e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn return NUM_ITEMS; 8202e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn } 8302e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn 8402e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn @Override 8502e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn public Fragment getItem(int position) { 8602e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn return ArrayListFragment.newInstance(position); 8702e82399ee8e5efe5c836314896e04699a9c8e93Dianne Hackborn } 88c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 89c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 90c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public static class ArrayListFragment extends ListFragment { 91c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn int mNum; 92c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 93c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn /** 94c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Create a new instance of CountingFragment, providing "num" 95c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * as an argument. 96c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 97c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn static ArrayListFragment newInstance(int num) { 98c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn ArrayListFragment f = new ArrayListFragment(); 99c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 100c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn // Supply num input as an argument. 101c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Bundle args = new Bundle(); 102c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn args.putInt("num", num); 103c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn f.setArguments(args); 104c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 105c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return f; 106c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 107c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 108c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn /** 109c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * When creating, retrieve this instance's number from its arguments. 110c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 111c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 112c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onCreate(Bundle savedInstanceState) { 113c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onCreate(savedInstanceState); 114c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn mNum = getArguments() != null ? getArguments().getInt("num") : 1; 115c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 116c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 117c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn /** 118c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * The Fragment's UI is just a simple text view showing its 119c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * instance number. 120c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 121c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 122c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public View onCreateView(LayoutInflater inflater, ViewGroup container, 123c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Bundle savedInstanceState) { 124c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn View v = inflater.inflate(R.layout.fragment_pager_list, container, false); 125c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn View tv = v.findViewById(R.id.text); 126c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn ((TextView)tv).setText("Fragment #" + mNum); 127c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return v; 128c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 129c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 130c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 131c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onActivityCreated(Bundle savedInstanceState) { 132c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super.onActivityCreated(savedInstanceState); 133c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn setListAdapter(new ArrayAdapter<String>(getActivity(), 134b1b8c06afc67ea8da6e390dc5be84182d839ede5Dianne Hackborn android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings)); 135c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 136c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 137c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn @Override 138c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void onListItemClick(ListView l, View v, int position, long id) { 139c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn Log.i("FragmentList", "Item clicked: " + id); 140c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 141c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 142c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn} 143a506d183f617f84df878c96fff54b532812cd6d7Dianne Hackborn//END_INCLUDE(complete) 144