Android 开发(10)ActionBar & 消息 & 通知 & 广播

本文详细介绍了Android开发中的ActionBar使用,包括显示和隐藏、添加Action Item和Action View,以及如何实现层级式导航。同时,文章还涵盖了消息提示如Toast、对话框展示、Notification发送以及BroadcastReceiver的发送和接收,包括AlarmManager的闹钟实现。
摘要由CSDN通过智能技术生成

ActionBar 使用

1、显示和隐藏ActionBar

actionbar:应用标题所在的区域
  • 一个专门的空间用来显示app标识,以及指出目前所处在app的哪个页面;
  • 以一种可预见的方式访问重要的操作(比如搜索);
  • 支持导航和视图切换(通过Tabs和下拉列表);
显示和隐藏
  • xml方法:就是在manifest 里面设置application或者 activity 的theme属性就可以实现显示和隐藏(带NoActionBar的主题)
  • java方法:首先getSupportActionBar 获得bar,然后调用hide 或者 show 方法即可

2、添加Action Item

  • 和前面创建选项菜单基本是一样的步骤,就是先定义菜单资源然后通过 inflater 进行填充
  • 只是定义菜单的 item的时候多了一个 showAsAction的属性,具体的属性值参考如下
    在这里插入图片描述
  • 菜单资源文件 item 示例
<item
	android:id="@+id/search"
	android:icon="@drawable/search"
	android:title="@string/search"
	app:showAsAction="always">
</item>

3、添加Action View

  • 就是往 ActionBar 上面添加组件
  • 菜单资源文件示例如下:具体的view既可以通过类进行指定,也可以通过布局文件指定
<item
    android:id="@+id/search"
    android:title="@string/search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always"
    ></item>
<item
    android:id="@+id/img1"
    android:title="@string/img1"
    app:actionLayout="@layout/img_message"
    app:showAsAction="always"></item>
说明
  • actionLayout、showAsAction等的前缀都是 app 而不是 android,需要引入相应的名称空间
  • action bar 的 setDisplayShowTitleEnabled 方法可以设置应用标题的隐藏和显示
  • getMenuInflater

4、ActionBar & tab

只有 tab 导航的action bar的实现
  • 步骤:建几个 fragment -->实现 tabListener -->MainActivity中添加tab到action bar
  • 关键代码
//tabListener实现类部分代码
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
   
	if(fragment == null){
   
		fragment = Fragment.instantiate(activity,clazz.getName());
		fragmentTransaction.add(android.R.id.content,fragment,null);
	}
	fragmentTransaction.attach(fragment);
}

@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
   
	if(fragment != null){
   
		fragmentTransaction.detach(fragment);
	}
}
//mainActivity部分代码
ActionBar ab = getSupportActionBar();
ab.setDisplayShowTitleEnabled(false);
ab.setNavigationMode(ab.NAVIGATION_MODE_TABS);
ab.addTab(ab.newTab().setText("第一页").
		setTabListener(new MyListener(AFragment.class,MainActivity.this)));
ab.addTab(ab.newTab().setText("第二页").
		setTabListener(new MyListener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值