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=; 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=; 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插件。
actionbarsherlock示例的更多相关文章
- SlidingMenu和ActionBarSherlock结合滑动式菜单都
https://github.com/jfeinstein10/SlidingMenu http://actionbarsherlock.com/ SlidingMenu 的demo工程引用了Acti ...
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- ActionBarSherlock,SlidingMenu
转自:http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.html Android3 ...
- Android 关于 ActionBarSherlock 的使用
原文地址 本文内容 使用 主题化 ActionBarSherlock 演示项目 本文 ActionBarSherlock 简单演示 最近一个星期被 actionsherlock 搞得很不爽(光去足疗店 ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1
微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...
- 通过Jexus 部署 dotnetcore版本MusicStore 示例程序
ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
随机推荐
- RabbitMQ .NET消息队列使用入门(一)【简单示例】
首先下载安装包,我都环境是win7 64位: 去官网下载 otp_win64_19.0.exe 和rabbitmq-server-3.6.3.exe安装好 然后开始编程了: (1)创建生产者类: cl ...
- SQLServer XXX IS NOT NULL
SQLServer中不能使用像Java和C#中的 XXX!=null 这种用法, 使用上面的用法返回值永远是False False False 正确的用法应该是--> XXXis not ...
- angular2之组件通讯
定义父组件,在父组件中以路由插座形式引入子组件,定义相关输入输出属性 可以在同一模块内部定义多个组件,将一个组件引入另一个组件中去:也可以该模块整体导出,将该模块导入到其他模块,这样此模块中的组件就能 ...
- php基础知识 书写格式
PHP,是英文超文本预处理语言Hypertext Preprocessor的递归缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言. php嵌入页面的标记有 ...
- Yearning + Inception SQL审核平台搭建
Yearning 安装: 安装Nginxyum install nginx -y 按照顺序安装MySQLmysql-community-common-5.7.22-1.el6.x86_64.rpmmy ...
- 【sqli-labs】 less5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)
双注入查询可以查看这两篇介绍 https://www.2cto.com/article/201302/190763.html https://www.2cto.com/article/201303/1 ...
- HDU_1711_初识KMP算法
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- C# 前一个数是后一个数的父级
private void button2_Click(object sender, EventArgs e) { var str = "1 2 3 4 5 6 7 8 9 10 11 12 ...
- vue 项目部署到nginx
第一步在控制台终端输入npm run build 打包完成之后项目中会生成一个dist文件夹,直接访问里面的index.html就ok了 第二步配置nginx 第三步重启nginx service n ...
- [51Nod1486] 大大走格子 (dp+容斥)
传送门 Description 有一个h行w列的棋盘,里面有一些格子是不能走的,现在要求从左上角走到右下角的方案数. Input 单组测试数据. 第一行有三个整数h, w, n(1 ≤ h, w ≤ ...