actionBar配合碎片使用  初始化actionBar要注意设置actionbar的导航模式

 package com.qf.actionbar04_tab;

 import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem; /**
* 使用ActionBar的Tab导航
* 1)设置ActionBar的导航的模式为TABS
* 2)当前Activity实现ActionBar.TabListener接口(Tab的选择与取消选择等事件)
* 3)通过ActionBar类对象的newTab() 创建Tab选项卡,同时设置显示的标题和事件监听
* 4)通过ActionBAr类对象的addTab()方法,将创建的Tab增加到ActionBar中
* 5)在Tab选择事件方法中,动态地显示Fragment
*
* @author apple
*
*/
public class MainActivity extends Activity implements TabListener{ private ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initActionBar();
} private void initActionBar() {
// TODO 初始化ActionBar中的相关设置
actionBar=getActionBar();//获取ActionBar对象 //1. 设置ActionBar的导航模式: tab选项卡的导航模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //3. 创建Tab
Tab tab1=actionBar.newTab()
.setText("头条")
.setIcon(android.R.drawable.ic_menu_add)
.setTabListener(this); Tab tab2=actionBar.newTab()
.setText("军事")
.setIcon(android.R.drawable.ic_menu_agenda)
.setTabListener(this); Tab tab3=actionBar.newTab()
.setText("国内")
.setIcon(android.R.drawable.ic_menu_delete)
.setTabListener(this); Tab tab4=actionBar.newTab()
.setText("国际")
.setIcon(android.R.drawable.ic_menu_camera)
.setTabListener(this); Tab tab5=actionBar.newTab()
.setText("体育")
.setIcon(android.R.drawable.ic_menu_compass)
.setTabListener(this); //4. 增加Tab到ActionBar中
actionBar.addTab(tab1);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
actionBar.addTab(tab4);
actionBar.addTab(tab5);
} @Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO 选择Tab事件
Log.i("info", "onTabSelected-----"+tab.getPosition()); ContentFragment cf=
ContentFragment.newInstace(tab.getText().toString()); ft.replace(R.id.mainLayoutId, cf); } @Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO 取消选择Tab事件
Log.i("info", "onTabUnselected-----"+tab.getPosition());
} @Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO 重新选择Tab事件
Log.i("info", "onTabReselected-----"+tab.getPosition()); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==R.id.action_share){ try {
String info="给您推荐一本新的学习资料:http://www.baidu.com/"
+URLEncoder.encode("Android5.0大全","utf-8");
//说明:使用URLEncoder工具类,将url请求中包含中文的信息转化unicode编码 Intent intent=new Intent(Intent.ACTION_SEND);
intent.setType("text/*"); //设置分享的内容类型为文本类型
// File imgFile=null;
// intent.setDataAndType(Uri.parse(imgFile.getAbsolutePath()), "image/*");
intent.putExtra(Intent.EXTRA_TEXT, info);//设置分享的内容 startActivity(intent);//开始分享 } catch (UnsupportedEncodingException e) {
e.printStackTrace();
} }
return super.onOptionsItemSelected(item);
} }

mainactivity

 import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView; public class ContentFragment extends ListFragment { private String title; //传入当前Fragment中的参数 private ArrayAdapter<String> adapter; //声明静态工厂方法
public static ContentFragment newInstace(String title){ ContentFragment cf=new ContentFragment();
Bundle args=new Bundle();
args.putString("title",title); cf.setArguments(args);//设置要传入Fragment中的参数 return cf;
} @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //获取传入的参数
title=getArguments().getString("title"); adapter=new ArrayAdapter<String>(getActivity().getApplicationContext(),
R.layout.item_content); //初始化数据源
for(int i=0;i<20;i++)
adapter.add(title+"--"+i); } @Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO 归属的Activity的onCreate()初始化方法执行完成
super.onActivityCreated(savedInstanceState); //设置当前Fragment中ListView控件的适配器
setListAdapter(adapter);
} @Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO ListView中的Item点击事件方法
//设置当前归属Activity的标题为点击item的内容 getActivity().setTitle(adapter.getItem(position));
} }

ConmtentFragment

actionBar_Tab导航的更多相关文章

  1. “四核”驱动的“三维”导航 -- 淘宝新UI(需求分析篇)

    前言 孔子说:"软件是对客观世界的抽象". 首先声明,这里的"三维导航"和地图没一毛钱关系,"四核驱动"和硬件也没关系,而是为了复杂的应用而 ...

  2. ABP文档 - 导航

    文档目录 本节内容: 创建菜单 注册导航供应器 显示菜单 每个web应用都有一些菜单用来在页面/屏幕之间导航,ABP提供了一个通用的基础框架创建并显示菜单给用户. 创建菜单 一个应用可能由不同模块组成 ...

  3. 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  4. GJM : C#设计模式汇总整理——导航 【原创】

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. SAP CRM 显示消息/在消息中进行导航

    向用户展示消息,在任何软件中都是十分重要的. 在SAP CRM WEB UI中展示消息,不是一项很难的任务,只需要创建消息并在之后调用方法来显示它 消息类和消息号: 我在SE91中创建了如下的消息类和 ...

  6. SAP CRM 将组件整合至导航栏中

    到现在,我们已经可以让组件独立地显示.我们只是运行它.让它显示在Web UI中.让我们把组件整合进导航栏,使我们可以在正常登录Web UI时访问它. 步骤一: 为你的UI组件主窗体创建一个内向插件. ...

  7. ABP(现代ASP.NET样板开发框架)系列之22、ABP展现层——导航栏设置

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之22.ABP展现层——导航栏设置 ABP是“ASP.NET Boilerplate Project (ASP.NE ...

  8. BootStrap_04之jQuery插件(导航、轮播)、以及Less

    1.列偏移与列排序: ①列偏移:控制列出现的位置,某列偏移后,后序列会随之偏移--只能右偏移: col-lg/md/sm/xs-offset-*; ②列排序:控制某一列的位置,该列可以左(pull)右 ...

  9. BootStrap_03之组件(手风琴、导航)

    1.BootStrap组件--按钮组: .btn-group>.btn*5: .btn-group-justified: .btn-group-lg/sm/xs: .btn-group-vert ...

随机推荐

  1. python 简单的单例模式日志模块

    # -*- coding: utf-8 -*-import logging def singleton(cls): instance = {} def _singleton(*args, **kw): ...

  2. 解决Sublime 3提示 Sublime Text Error while loading PyV8 binary

    转自:http://blog.initm.com/sublime-text/ 今天打开sublime遇到一个提示  如上图Sublime Text Error while loading PyV8 b ...

  3. 第13章 TCP编程(2)_TCP的连接和关闭过程

    4. TCP的连接和关闭过程 4.1 TCP连接的三次握手和四次挥手 (1)三次握手 ①第1次握手:建立连接.客户端发送连接请求报文段(SYN=1,sequence Number=x):然后客户端进入 ...

  4. 【Unix网络编程】 chapter5 TCP客户,服务器程序实例

    chapter5 5.1 概述 5.2 TCP回射服务器程序:main函数 int main(int argc, char **argv) { int listenfd,connfd; pid_t c ...

  5. php 七种数据类型介绍

    PHP有7个数据类型.七个类型: 字符串, 整数, 浮动, 布尔, 数组, 对象, 资源. 字符串 字符串保持字符,如“一”.“abc”,“www.manongjc.com”等.PHP字符串是区分大小 ...

  6. 2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 Week9 20165233

    Exp6 信息搜集与漏洞扫描 目录 一.基础问题 二.实验步骤 实验点一:各种搜索技巧的应用 实验点二:DNS IP注册信息的查询 实验点三:基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具 ...

  7. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165233

    Exp0 Kali安装 安装过程 1.首先我的Mac上已经安装好了VMware Fusion,所以直接下载对应的虚拟机版本的Kali即可. 2.进入Kali官网进行下载. 以下为下载链接: Kali ...

  8. zabbix微信报警

    [root@LinuxS04 jiaoben]# ./weixin 联系人 baojing baojingok[root@LinuxS04 jiaoben]# pwd/usr/local/zabbix ...

  9. spring data jpa @query的用法

    @Query注解的用法(Spring Data JPA) 参考文章:http://www.tuicool.com/articles/jQJBNv . 一个使用@Query注解的简单例子 @Query( ...

  10. IE浏览器中的加载项怎么删除

    IE浏览器中的加载项是一些软件或者浏览器的功能控件,我们可以通过禁用.开启来控制是否使用某些加载项,同时可以将一些加载项删除. 比如当我们遇到了一些不好的加载项,想要将它删除,通过这篇经验,教大家怎么 ...