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插件。


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5438622.html,如需转载请自行联系原作者

相关文章
|
JSON 网络协议 数据格式
curl常用参数详解及示例
curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(如:html的渲染等),直接显示在"标准输出"(stdout)上。
3059 0
|
6月前
|
JSON 数据格式
Unsupported Media Type,传入的字符串数据:这里应该是Json
Unsupported Media Type,传入的字符串数据:这里应该是Json
|
8月前
GEE错误——‘xxx‘ did not match any bands.
GEE错误——‘xxx‘ did not match any bands.
436 1
|
C#
利用ICSharpCode.SharpZipLib.dll解析 出错:“Wrong Local header signature: 0xFF8”
## 分析原因 利用ICSharpCode.SharpZipLib.dll解析APK时,进入APK的AndroidXml获取时出现报错 ## 出错代码 ```csharp using (ICSharpCode.SharpZipLib.Zip.ZipInputStream zip = new ICSharpCode.SharpZipLib.Zip.ZipInputStream(File.OpenRead(path))) { using (var filestream = new FileStream(path, FileMode.Open, FileAccess.Read)) {
151 1
|
机器学习/深度学习 人工智能 前端开发
VS Code settings.json 10 个高(装)阶(杯)配置!
VS Code settings.json 10 个高(装)阶(杯)配置!
|
程序员 iOS开发 开发者
iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误
前段时间在开发过程中遇到一个iOS打包报错Ignoring file XXX missing required architecture arm7 in file XXX的问题,然后回想了一下问题所在,是因为集成了ijk播放器插件,然后ijk三方库不支持arm7造成的报错。
199 0
iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误
|
Java
Java通用方法 -- 唯一识别码(universally unique identifier)(UUID)实现
提供通用唯一识别码(universally unique identifier)(UUID)实现
154 0
product_code参数详解
说明: product_code参数为销售产品码,与支付宝签约的产品码名称,此参数一般为必填参数,请严格按照开放平台文档要求传递   示例: 1.电脑网站支付产品alipay.trade.page.pay接口中,product_code为:FAST_INSTANT_TRADE_PAY 2.
3654 12
|
Java
Missing artifact net.sf.json-lib:json-lib:jar:2.4
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/79911266 添加依赖 net.
1547 0

热门文章

最新文章

下一篇
开通oss服务