zoukankan      html  css  js  c++  java
  • actionbarsherlock示例

    package com.example.viewpagerandtabdemo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    
    import com.actionbarsherlock.app.ActionBar;
    import com.actionbarsherlock.app.ActionBar.Tab;
    import com.actionbarsherlock.app.SherlockFragmentActivity;
    
    public class MainActivity extends SherlockFragmentActivity implements ActionBar.TabListener, OnPageChangeListener{
        /**
         * 顶部Tab的title
         */
        private String [] mTabTitles;
        
        /**
         * ViewPager对象的引用
         */
        private ViewPager mViewPager;
        
        /**
         * 装载Fragment的容器,我们的每一个界面都是一个Fragment
         */
        private List<Fragment> mFragmentList;
        
        /**
         * ActionBar对象的引用
         */
        private ActionBar mActionBar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            
            
            mViewPager = (ViewPager) findViewById(R.id.viewPager);
            mFragmentList =  new ArrayList<Fragment>();
            //设置Adapter
            mViewPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager(), mFragmentList));
            //设置监听
            mViewPager.setOnPageChangeListener(this);
            
            
            
            //从资源文件在获取Tab的title
            mTabTitles = getResources().getStringArray(R.array.tab_title);
            //获取Action实例我们使用getSupportActionBar()方法
            mActionBar = getSupportActionBar();
            //隐藏Title
            mActionBar.setDisplayShowTitleEnabled(false);
            //隐藏Home logo
            mActionBar.setDisplayShowHomeEnabled(false);
            //设置ActionBar的导航模式为Tab
            mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            
            
            //为ActionBar添加Tab并设置TabListener
            for(int i=0; i<mTabTitles.length; i++){
                 ActionBar.Tab tab = mActionBar.newTab();
                 tab.setText(mTabTitles[i]);
                 tab.setTabListener(this);
                 mActionBar.addTab(tab, i);
            }
            
            
            //将Fragment加入到List中,并将Tab的title传递给Fragment
            for(int i=0; i<mTabTitles.length; i++){
                Fragment fragment = new ItemFragment();
                Bundle args = new Bundle();
                args.putString("arg", mTabTitles[i]);
                fragment.setArguments(args);
                mFragmentList.add(fragment);
            }
            
        }
        
        
    
        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            //点击ActionBar Tab的时候切换不同的Fragment界面
            mViewPager.setCurrentItem(tab.getPosition());
        }
    
        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    
        }
    
        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            
        }
        
        
        @Override
        public void onPageScrollStateChanged(int arg0) {
            
        }
    
        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            
        }
    
        @Override
        public void onPageSelected(int arg0) {
            //滑动ViewPager的时候设置相对应的ActionBar Tab被选中
            mActionBar.setSelectedNavigationItem(arg0);
        }
    
    
    }
    package com.example.viewpagerandtabdemo;
    
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    
    import com.actionbarsherlock.app.SherlockFragment;
    
    
    public class ItemFragment extends SherlockFragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            
            View contextView = inflater.inflate(R.layout.fragment_item, container, false);
            TextView mTextView = (TextView) contextView.findViewById(R.id.textview);
            
            //获取Activity传递过来的参数
            Bundle mBundle = getArguments();
            String title = mBundle.getString("arg");
            
            mTextView.setText(title);
            
            return contextView;
        }
    
        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
        }
    
    }
    package com.example.viewpagerandtabdemo;
    
    import java.util.List;
    
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentStatePagerAdapter;
    
    public class TabPagerAdapter extends FragmentStatePagerAdapter {
        private List<Fragment> list;
        
        //构造函数
        public TabPagerAdapter(FragmentManager fm, List<Fragment> list) {
            super(fm);
            this.list = list;
        }
    
        @Override
        public Fragment getItem(int arg0) {
            return list.get(arg0);
        }
    
        @Override
        public int getCount() {
            return list.size();
        }
    
    }

     插件用的是github上的actionbarsherlock插件。

  • 相关阅读:
    Android ListView嵌套Button,Button事件覆盖item事件解决办法
    android 再按一次退出程序(实现代码)
    Android 带checkbox的listView 实现多选,全选,反选
    Android调用第三方应用
    Android输入法界面管理(打开/关闭/状态获取)
    ViewPager的使用方法和实现过程
    安装pycharm 2018.3 Professional Edition
    layui和jquery冲突:Syntax error, unrecognized expression: +
    解决因为本地代码和远程代码冲突,导致git pull无法拉取远程代码的问题(转载)
    Object.assign()
  • 原文地址:https://www.cnblogs.com/yaowen/p/5438622.html
Copyright © 2011-2022 走看看