Android[项目1.3:主界面的搭建]

    xiaoxiao2021-08-22  99

    /** * 简洁 * @author mac *@创建时间2016-11-17上午11:23:48 *@描述信息TODO 主界面的搭建 工厂设计模式+适配器模式 (解耦) 高内聚,低耦合 */ public class MainActivity extends BaseActivity {

    private PagerTab mPt_slide; private ViewPager mVp_slide; @Override protected void onCreate( Bundle savedInstanceState ) { super.onCreate(savedInstanceState); initView(); } private void initView( ) { setContentView(R.layout.activity_main); mPt_slide = (PagerTab) findViewById(R.id.pt_main_slide); mVp_slide = (ViewPager) findViewById(R.id.vp_main_slide); //创建适配器 把数据映射到视图上 MyFragmentAdapter fragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager()) ; mVp_slide.setAdapter(fragmentAdapter); //pager指针和viewPager进行绑定 mPt_slide.setViewPager(mVp_slide); } class MyFragmentAdapter extends FragmentPagerAdapter{ private String[] mTabNames; public MyFragmentAdapter(FragmentManager fm) { super(fm); mTabNames = UIUtils.getStringArray(R.array.tab_names);//加载页面的数组 } @Override public CharSequence getPageTitle( int position ) { return mTabNames[position]; } //返回当前位置的对象 @Override public Fragment getItem( int position ) { BaseFragment fragment = (BaseFragment) FragmentFactory.createFragment(position); return fragment; } @Override public int getCount( ) { return mTabNames.length; } } }

    public class FragmentFactory {

    private static HashMap<Integer, BaseFragment> mFragmentMap = new HashMap<Integer, BaseFragment>(); public static Fragment createFragment(int pos){ BaseFragment fragment = mFragmentMap.get(pos); if(fragment==null){ switch (pos) { case 0: fragment = new HomeFragment(); break; case 1 : fragment = new AppFragment(); break; case 2 : fragment = new GameFragment(); break; case 3 : fragment = new SubjectFragment(); break; case 4 : fragment = new RecommendFragment(); break; case 5 : fragment = new CategoryFragment(); break; case 6: fragment = new HomeFragment(); break; default: break; } mFragmentMap.put(pos, fragment); } return fragment; } }

    public class BaseFragment extends Fragment {

    @Override public View onCreateView( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) { TextView tv = new TextView(UIUtils.getContext()); tv.setText(getClass().getSimpleName()); return tv; } }
    转载请注明原文地址: https://ju.6miu.com/read-676856.html

    最新回复(0)