Android FragmentStatePagerAdapter的写法

来源:互联网 发布:域名出售网 编辑:程序博客网 时间:2024/06/05 02:31
/** *  * @描述 主页 * @项目名称 App_Shop * @包名 com.android.shop * @类名 MainActivity * @author chenlin * @date 2015年6月20日 下午9:36:50 */public class MainActivity extends BaseActivity implements OnQueryTextListener {    // 拖拽控件    private DrawerLayout mDrawerLayout;    // 拖拽控制器    private ActionBarDrawerToggle mDrawerToggle;    private ViewPager mViewPager;    // 页面切换器    private PagerTabStrip mTabStrip;    // tab名称    private String[] mTabNames;    // 当前fragment    private Fragment mCurrentFragment;    // 菜单fragment    private FrameLayout mMenuFragment;    @Override    public void init() {        // sendBroadcast(new Intent(KILLACTION)); 关闭activity        setContentView(R.layout.activity_main);        mTabNames = Util.getStringArray(R.array.tab_names);    }    @Override    public void initViews() {        mViewPager = (ViewPager) findViewById(R.id.vp_main);        mViewPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager()));        mTabStrip = (PagerTabStrip) findViewById(R.id.pager_tab_strip);        // 设置指示器颜色        mTabStrip.setTabIndicatorColor(getResources().getColor(R.color.tabIndicator_color));        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout_main);        // 加载左侧的菜单信息        mMenuFragment = (FrameLayout) findViewById(R.id.fl_menu);        // 数据控制器        MenuHolder holder = new MenuHolder();        // 添加左菜单        mMenuFragment.addView(holder.getConvertView());    }    @Override    protected void initEvents() {        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {            @Override            public void onPageSelected(int position) {                // getSupportActionBar().setSelectedNavigationItem(position);                // 在页面切换时显示不同的加载页面                FragmentFactory.createFragment(position).show();                super.onPageSelected(position);            }        });    }    @Override    protected void initActionBar() {        // getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        // 添加菜单        ActionBar actionBar = getSupportActionBar();        actionBar.setDisplayHomeAsUpEnabled(true);        //actionBar.setDisplayShowTitleEnabled(false);//去掉标题        actionBar.setDisplayUseLogoEnabled(true);        actionBar.setDisplayShowHomeEnabled(true);        actionBar.setHomeButtonEnabled(true);        actionBar.setTitle(getResources().getString(R.string.app_title));        //actionBar.setLogo(R.drawable.icon_menu);        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.open_drawer,                R.string.close_drawer) {            @Override            public void onDrawerClosed(View drawerView) {                super.onDrawerClosed(drawerView);            }            @Override            public void onDrawerOpened(View drawerView) {            }        };        // 设置控制器        mDrawerLayout.setDrawerListener(mDrawerToggle);        // 异步状态        mDrawerToggle.syncState();    }    /**     * 跳转到详情页面     *      * @param view     */    public void toDetail(View view) {        Intent intent = new Intent(this, DetailActivity.class);        startActivity(intent);    }    /**     * 添加搜索框     */    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.activity_main, menu);        // if (android.os.Build.VERSION.SDK_INT >= 11) {        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();        // 设置查询监听        searchView.setOnQueryTextListener(this);        // }        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == R.id.action_search) {            Toast.makeText(this, "搜索", Toast.LENGTH_LONG).show();        }        return super.onOptionsItemSelected(item) | mDrawerToggle.onOptionsItemSelected(item);    }    @Override    public boolean onQueryTextSubmit(String query) {        // TODO Auto-generated method stub        return true;// true表示执行此方法    }    @Override    public boolean onQueryTextChange(String newText) {        // TODO Auto-generated method stub        return true;    }    private class TabPagerAdapter extends FragmentStatePagerAdapter {        public TabPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            //根据位置获得当前的fragment            mCurrentFragment = FragmentFactory.createFragment(position);            return mCurrentFragment;        }        @Override        public int getCount() {            return mTabNames.length;        }        @Override        public CharSequence getPageTitle(int position) {            return mTabNames[position];        }    }    @Override    public boolean dispatchKeyEvent(KeyEvent event) {        if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {            //显示退出对话框            showExitDialog();            return true;        }        return super.dispatchKeyEvent(event);    }}
0 0
原创粉丝点击