actionBar + viewPager实现活动tab
2015-03-18 01:53
351 查看
package com.qloudfin.jpaybusiness.pos; import android.app.ActionBar; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; import android.content.res.TypedArray; import android.content.res.Resources.Theme; import android.view.Menu; import android.view.MenuItem; import com.qloudfin.jpaywallet.R; import com.qloudfin.jpaywallet.card.MyCardActivity; import com.qloudfin.jpaywallet.card.NewCardActivity; import com.qloudfin.jpaywallet.common.TabbedActivity; import com.qloudfin.jpaywallet.scan.ActivityIntegrator; import com.qloudgen.qwidget.internal.FragmentPagerAdapter; import com.qloudgen.qwidget.internal.ViewPager; /* * ------刷卡 功能模块-------- */ public class PosActivity extends TabbedActivity { private ViewPager mViewPager; private ViewPagerAdapter mViewPagerAdapter; private CardDetailFragment fr1 = new CardDetailFragment(); private ConsumeFragment fr2 = new ConsumeFragment(); private AwardFragment fr3 = new AwardFragment(); private static final int TAB_INDEX_COUNT = 3; private static final int TAB_INDEX_ONE = 0; private static final int TAB_INDEX_TWO = 1; private static final int TAB_INDEX_THREE = 2; @Override protected void setupTab() { setContentView(R.layout.ac_container); ActionBar ab = getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); setUpViewPager(); setUpTabs(); } // 使用下面的响应方法,需要在TabbedActivity中实现ActionBar.TabListener方法。 @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { mViewPager.setCurrentItem(tab.getPosition()); } private void setUpTabs() { final ActionBar actionBar = getActionBar(); for (int i = 0; i < mViewPagerAdapter.getCount(); ++i) { actionBar.addTab(actionBar.newTab() .setText(mViewPagerAdapter.getPageTitle(i)) .setTabListener(this)); } } @Override protected void onDestroy() { super.onDestroy(); } private void setUpViewPager() { mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.viewPager); mViewPager.setAdapter(mViewPagerAdapter); mViewPager .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { final ActionBar actionBar = getActionBar(); actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrollStateChanged(int state) { switch (state) { case ViewPager.SCROLL_STATE_IDLE: // TODO break; case ViewPager.SCROLL_STATE_DRAGGING: // TODO break; case ViewPager.SCROLL_STATE_SETTLING: // TODO break; default: // TODO break; } } }); } public class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } @Override public Fragment getItem(int position) { // TODO Auto-generated method stub switch (position) { case TAB_INDEX_ONE: return fr1; case TAB_INDEX_TWO: return fr2; case TAB_INDEX_THREE: return fr3; } throw new IllegalStateException("No fragment at position " + position); } @Override public int getCount() { // TODO Auto-generated method stub return TAB_INDEX_COUNT; } @Override public CharSequence getPageTitle(int position) { String tabLabel = null; switch (position) { case TAB_INDEX_ONE: tabLabel = getString(R.string.carddetail); break; case TAB_INDEX_TWO: tabLabel = getString(R.string.consume); break; case TAB_INDEX_THREE: tabLabel = getString(R.string.award); break; } return tabLabel; } } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem mi = menu.add(Menu.NONE, R.id.new_card_scan, 50, "new"); mi.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); TypedArray a = getTheme().obtainStyledAttributes( new int[] { R.attr.ic_scan }); int rid = a.getResourceId(0, 0); a.recycle(); if (rid > 0) mi.setIcon(rid); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.new_card_scan: ActivityIntegrator integrator = new ActivityIntegrator(this); integrator.initiateScan(); return true; default: return super.onOptionsItemSelected(item); } } }
相关文章推荐
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
- 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
- Android ActionBar+ViewPager 实现左右滑动Tab
- ViewPagerIndicator系列之--ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
- Android UI 详解之ActionBar+ViewPager+Fragment 实现滑动Tab
- ActionBar + ViewPager实现左右滑动切换Tab页效果
- android 仿微信Tab ActionBar+ViewPager+Fragment
- ViewPager与ActionBar结合实现导航
- Actionbar + tabs + viewpager使用
- 在屏幕上方是actionBar tab的ViewPager页面里面嵌套子tab并显示于屏幕下方
- ActionBar(5) ActionBar+ViewPager+PagerTitleStrip 实现可左右滑动的Tab页布局
- ActionBar + ViewPager(PagerSlidingTabStrip)
- ActionBar(6) ActionBar+ViewPager 实现可左右滑动的Tab页布局
- Android tab导航的几种方法:ActionBar tab +fragment,Viewpager+pagerTitleStrip,开源框架ViewPageIndicator 和 ViewPager
- Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果
- ActionBar Tab与ViewPager整合