文档章节

Android ActionBar总结

亓斌哥哥
 亓斌哥哥
发布于 2014/04/16 20:19
字数 536
阅读 280
收藏 6
点赞 0
评论 0

1、设置显示/隐藏ActionBar

菜单xml文件

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

    <item

        android:id="@+id/menu1"

        android:orderInCategory="1"

        android:showAsAction="ifRoom|withText"    // ifRoom:如果ActionBar有空间则显示, withText尽可能的显示文本

        android:title="菜单1"/>

    

   

<item

        android:id="@+id/menu2"

        android:orderInCategory="2"

        android:showAsAction="collapseActionView|withText"  // 如果想让这个选项放在麦库截图20141816183448703.jpg 中,可以使用collapseActionView

        android:title="菜单2" />

    

    <item

        android:id="@+id/menu3"

        android:orderInCategory="2"

        android:showAsAction="ifRoom|withText"

        android:title="菜单3">

    <menu>

            <item

                android:id="@+id/m1"

                android:orderInCategory="1"

                android:title="子项1"/>

            <item

                android:id="@+id/m2"

                android:orderInCategory="2"

                android:title="子项2"/>

        </menu>

    </item>

</menu>


显示/隐藏ActionBar

bar = super.getActionBar();

bar.show();

bar.hide();


处理菜单的点击事件

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.m1:

Toast.makeText(this, "选择了1", Toast.LENGTH_SHORT).show();

break;


case R.id.m2:

Toast.makeText(this, "选择了2", Toast.LENGTH_SHORT).show();

break;

}

return super.onOptionsItemSelected(item);

}


效果:

麦库截图20141816182411947.jpg 

麦库截图20141816182424011.jpg 




2、ActionBar + 系统View

<item

        android:id="@+id/main3"

        android:orderInCategory="3"

        android:showAsAction="always"  // 始终显示。优先级最高

        android:actionViewClass="android.widget.SearchView" />

android:actionViewClass="android.widget.SearchView"会显示android系统自带的Search组件

效果:

麦库截图20141816185251672.jpg 

麦库截图20141816185310048.jpg 


3、ActionBar + Tab

Fragment java文件

public class Frag extends Fragment {

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.frag, null);

TextView show = (TextView) view.findViewById(R.id.show);

String text = super.getArguments().getString("key");

show.setText(text);

Toast.makeText(super.getActivity(), text, Toast.LENGTH_SHORT).show();


return view;

}

}


mainActivity文件


public class MainActivity extends Activity {

private ActionBar bar;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


bar = super.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

                bar.setHomeButtonEnabled(true);


ActionBar.Tab tab1 = bar.newTab().setText("未接电话").setTag("one")

                                .setTabListener(new Listener());

ActionBar.Tab tab2 = bar.newTab().setText("已接电话").setTag("two")

.setTabListener(new Listener());

ActionBar.Tab tab3 = bar.newTab().setText("所有电话").setTag("three")

.setTabListener(new Listener());


bar.addTab(tab1);

bar.addTab(tab2);

bar.addTab(tab3);

}


private class Listener implements TabListener {

@Override

public void onTabSelected(Tab tab, FragmentTransaction ft) {

Bundle bundle = new Bundle();

if ("one".equals(tab.getTag())) {

bundle.putString("key", "未接电话     18254588552   10:20:00");

}else if("two".equals(tab.getTag())) {

bundle.putString("key", "已接电话     18254588552   10:20:00");

}else if("three".equals(tab.getTag())) {

bundle.putString("key", "所有电话     18254588552   10:20:00");

}

Fragment frag = new Frag();

frag.setArguments(bundle);

ft.replace(R.id.content, frag); // 不需要commit, 系统会自动commit

}


@Override

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

}


@Override

public void onTabReselected(Tab tab, FragmentTransaction ft) {

}


}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


@Override

public boolean onOptionsItemSelected(MenuItem item) {

if (item.getItemId() != R.id.main3) {

Toast.makeText(this, "选择了" + item.getTitle(), Toast.LENGTH_SHORT)

.show();

}

return super.onOptionsItemSelected(item);

}

}



4、ActionBar List显示

bar = super.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

bar.setHomeButtonEnabled(true);

bar.setIcon(R.drawable.ic);

bar.setListNavigationCallbacks(new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, titles),

new OnNavigationListener() {

@Override

public boolean onNavigationItemSelected(int itemPosition,

long itemId) {

Toast.makeText(MainActivity.this, titles[itemPosition],

Toast.LENGTH_SHORT).show();

return false;

}

});


效果:

 

© 著作权归作者所有

共有 人打赏支持
亓斌哥哥

亓斌哥哥

粉丝 28
博文 34
码字总数 12346
作品 13
莱芜
程序员
actionbarsherlock使用总结

为了在2.*版本使用actionbar,在网上下载了开源的actionbarsherlock,花了一下午才搞定。。。。 由于是新人,遇到了不少问题,现在总结一下。 1、不用说,下载 http://actionbarsherlock.com...

尼莫
2012/10/19
0
1
Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar...

恰同学少年
2015/08/03
0
0
Android之ActionBar学习

关于那个问题:是关于如何生成如下图所示之ActionBar效果: 其实就在官网上就有答案,自己疏忽再加上资料繁多。寻了许久,经过指点。终于找到: To enable split action bar, simply add uiO...

尼莫
2012/10/12
0
1
浅谈Activity,Fragment模块化封装

欢迎大家访问我的博客:博客地址 概述 继承关系 这里的继承关系大家肯定十分熟悉了,这里贴出的是v4包中fragment,可以看出fragment是直接继承于object的,与四大组件没有任何关系。 两者之间...

stone_zhu
06/12
0
0
Android ActionBar

在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展...

Jerikc
2012/10/25
0
0
Android项目使用support v7时遇到的各种问题

当我们开发android应用需要用到android-support-v7-appcompat.jar这个库时(比方说要在2.2版本上使用actionbar和fragment),在项目中导入v4和v7这两个库之后,新手往往会遇到一些问题。在这...

AlexMahoneFBI
2015/03/10
0
0
ActionBar的使用——低版本兼容

ActionBar是android 3.0之后才出的,也就是API 11及以上才有。 在minSdkVersion中填7的话,就会报错。 有一个办法可以解决。在使用ActionBar的activity属性上加android:theme="@android :st...

亭子happy
2013/07/15
0
1
Android各版本间API的差异 - ActionBar

概述 ActionBar是在Android 3.0 (API LEVEL 11) 中添加进来的, 向下版本到2.1, 则需要使用support-v7. 而2.1以下版本则需要自行实现了. 差异 Android 3.0+请参考官方文档. Android 2.1+使用时...

有初啊
2014/01/02
0
0
如何使用ActionBarSherlock代替在android4.0中的ActionBar及F...

先前有一个项目,是基于android4.0来开发,使用到了Fragment及ActionBar,没打算支持android2.1-android2.3系列版本 写完之后,我将此应用发布到百度应用,一天以后,收到百度测试员反馈的信息:由于...

chenzz
2013/04/03
0
0
用BadgeView在actionbar menu上显示提醒信息

有时候需要在actionbar menu上显示消息个数,所以可以用BadgeView来实现。 实现方法是获取actionbar menuitem的view,然后创建BadgeView。注意,通常只能在Optionsmenu创建完成之后去获取men...

嘻哈开发者
2014/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue组件及路由理论知识

一、 组件component 1. 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码组件是自定义元素(对象) 2. 定义组件的方式 方式1:先创建...

一个yuanbeth
1分钟前
0
0
Saltstack配置之 nodegroups

#cd /etc/salt #mkdir master.d #vim node.conf //按组写入文件 nodegroups: client_all: 'L@192.168._._,192.168._._' clienta: 'L@192.168.192._' clientb: 'L@192.168.192._' #/etc/init......

硅谷课堂
7分钟前
0
0
expect(spawn) 自动化git提交和scp拷贝---centos(linux)

**在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式: ** #!/usr/bin/expect #设置参数 set src [lindex $argv 0] set dest [lin...

helplove
11分钟前
1
0
用Build来构建对象的写法

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。 import java.io.Serializable;import java.util.Date;public class Log impleme...

算法之名
13分钟前
11
0
利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
27分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
31分钟前
2
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
32分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
35分钟前
1
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
40分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部