Fragment工厂模式

来源:互联网 发布:淘宝网个人开店流程 编辑:程序博客网 时间:2024/06/06 01:15

XML布局文件中

 <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent" >    </android.support.v4.view.ViewPager>

FragmentFactory工厂中

package com.example.nbagame.fragment;import java.util.HashMap;import android.support.v4.app.Fragment;public class FragmentFactory {    private static HashMap<Integer, Fragment> fragments;    public static Fragment getFragment(int position) {        fragments = new HashMap<Integer, Fragment>();        Fragment fragment = fragments.get(position);        if (fragment != null) {            return fragment;        } else {            switch (position) {            case 0:                fragment = new FF1();                break;            case 1:                fragment = new FF2();                break;            case 2:                fragment = new FF3();                break;            default:                break;            }            fragments.put(position, fragment);            return fragment;        }    }}

MainActivity中

    private ViewPager viewPager;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.frag, container, false);        viewPager = (ViewPager) view.findViewById(R.id.viewPager);        viewPager.setAdapter(new FragmentPagerAdapter(getActivity()                .getSupportFragmentManager()) {            @Override            public int getCount() {                // TODO Auto-generated method stub                return 3;            }            @Override            public Fragment getItem(int arg0) {                Fragment fragment = FragmentFactory.getFragment(arg0);                return fragment;            }        });        return view;    }
0 0