类似于actionBar也是在导航栏里用但是他使用的是menu菜单设置菜单项的AsAction=“always|withText”

本例使用LoaderCallbacks<Cursor>接口回调

使用菜单项

 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.java

 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));
} }

ContentFragment

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

     <!-- actionViewClass 设置ActionView控件的UI类 -->
<item
android:id="@+id/action_search"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView"
android:title="检索"/> <!-- actionLayout 属性设置自定义ActionView的布局文件 -->
<item
android:id="@+id/action_search_custom"
android:orderInCategory="100"
android:showAsAction="always|collapseActionView"
android:actionLayout="@layout/actionview_search"
android:icon="@android:drawable/ic_menu_agenda"
android:title="自定义检索"/> </menu>

menu_main

注意这里使用的碎片是ListFragment他可以实现onScrollListener  重写其中的方法 不过最终还得getListView().setOnScrollListener(this);  一般是在onActivityCreated()中实现绑定

actionView的更多相关文章

  1. FATAL: ActionView::Template::Error (application.css isn't precompiled):

    iwangzheng.com tty:[0] jobs:[0] cwd:[/opt/logs/m]13:02 [root@a02.cmsapi$ tail thin\ server\ \(0.0.0. ...

  2. gitlab ActionView::Template::Error (undefined method `[]' for nil:NilClass): 500错误

    Started GET "/mygroup/myproject/tree/master/MyDirectory" for 127.0.0.1 at 2014-10-22 22:42 ...

  3. Android学习笔记ActionView

    概念 案例 1.布局文件 activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...

  4. Android(2)—Mono For Android App版本自动更新

    0.前言 公司Android查询的项目已经开始,整体采用Java后台+App前台来实现,由于项目小,App这块就我一个人开发,首先需要研究的是:Android版本的更新升级问题:本人经过近一周的学习整 ...

  5. 将语音搜索集成到Google Now中

    原文标题:Use Voice Search to integrate with Google Now 原文链接:http://antonioleiva.com/voice_search_google_ ...

  6. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  7. RubyOnRails local_assigns

    http://api.rubyonrails.org/classes/ActionView/Template.html#method-i-local_assigns Returns a hash wi ...

  8. Rails sanitize

    The SanitizeHelper module provides a set of methods for scrubbing text of undesired HTML elements. T ...

  9. YII 的源码分析(三)

    前面已经看完了启动一个yii程序所要经过的流程,以及渲染一个页面是怎么完成的.今天要分析的是yii是如何处理用户请求的.也就是控制和动作部分. 还是以helloworld为例演示这一过程.我们在地址栏 ...

随机推荐

  1. Xss漏洞原理分析及简单的讲解

    感觉百度百科 针对XSS的讲解,挺不错的,转载一下~   XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...

  2. Python 编程规范梳理

    缘由 由于项目团队中新加入了几名攻城狮, 大家之前的背景各不相同,写出的代码也是“风格迥异”.正所谓:“无规则不成方圆”,因此需要对编程进行必要的规范. 整体的思路是:依照PEP8 Python 编码 ...

  3. 谷歌推出新型强化学习框架Dopamine

    今日,谷歌发布博客介绍其最新推出的强化学习新框架 Dopamine,该框架基于 TensorFlow,可提供灵活性.稳定性.复现性,以及快速的基准测试. GitHub repo:https://git ...

  4. java基础:关于java流与文件操作

    1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...

  5. 动态html处理和及其图像识别

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpCli ...

  6. LINUX ifconfig 命令详解

    ifconfig 配置和显示Linux系统网卡的网络参数 补充说明 ifconfig命令 被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启 ...

  7. HTML5 Canvas ( 文字的度量 ) measureText

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Maven 多环境 打包

    1.pom.xml文件添加profiles属性 <profiles> <profile> <id>dev</id> <activation> ...

  9. css 学习网址

    http://www.divcss5.com/ http://www.divcss5.com/css3/  css3手册 http://www.divcss5.com/shouce/ css手册 ht ...

  10. 4 并发编程-(进程)-守护进程&互斥锁

    一.守护进程 主进程创建子进程,然后将该进程设置成守护自己的进程,守护进程就好比崇祯皇帝身边的老太监,崇祯皇帝已死老太监就跟着殉葬了. 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束 ...