Android FragmentStatePagerAdapter的写法
2016-06-22 22:24
429 查看
/** * * @描述 主页 * @项目名称 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); } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories