ActionBarActivity+AppCompatActivity操作栏功能的使用

由于ActionBarActivity已经过时,用来替代的是AppCompatActivity。但是对于menu的使用还是一样的,下面介绍下对于menu的简单创建,和几个功能的使用。

先上效果图
这里写图片描述

1.创建任意Activity继承AppCompatActivity

public class MainActivity extends AppCompatActivity 

2.然后重写onCreateOptionsMenu方法,返回true表示你要自定义菜单的item

先贴出代码如下

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {



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


    MenuItem locationItem = menu.add(0, 'R.id.menu_location', 0, 'R.string.menu_location');


   locationItem.setIcon('R.drawable.ic_action_location');


   MenuItemCompat.setShowAsAction(locationItem,  'MenuItem.SHOW_AS_ACTION_IF_ROOM');



return true;

}

3.这里的R.menu.main是定义在res menu下的文件
main.xml

<?xml version="1.0" encoding="utf-8"?><menu              


xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:support="http://schemas.android.com/apk/res-auto">




    <item

        android:id="@+id/menu_refresh"android:icon="@drawable/ic_action_refresh"android:title="@string/menu_refresh"support:showAsAction="ifRoom"/>


    <item

        android:id="@+id/menu_settings"android:icon="@drawable/ic_action_settings"android:title="@string/menu_settings"



</menu>

每个item就是menu上的一个图标,
其中icon是你要显示的图标,
title是你要显示的文字
showAsAction有几种模式

1、always:这个值会使item一直显示在Action Bar上。
2、ifRoom:如果有足够的空间,这个值会使item显示在Action Bar上。
3、never:这个值使item永远都不出现在Action Bar上。
4、withText:这个值使item和它的图标,菜单文本一起显示。

4.在代码里设置location

MenuItem locationItem = menu.add(0, 'R.id.menu_location', 0, 'R.string.menu_location');


menu.add方法的参数这里介绍下

public MenuItem add(int groupId, int itemId, int order, CharSequence title);
1.groupId  用于对menu里的item进行分组 如果不分组可用`Menu.NONE`
2.itemId   设置item的id,不过不区分id可用 `Menu.NONE`
3.order    item在menu里的顺序,如果不关心顺序可用`Menu.NONE`
4.title    item的名字

5.在res下的values定义了一个ids.xml文件,对应着R.id.menu_location

<?xml version="1.0" encoding="utf-8"?><resources>


    <item name="menu_location" type="id"/>


</resources>

6.然后给location设置icon

locationItem.setIcon(R.drawable.ic_action_location);

7.最后绑定给menu

MenuItemCompat.setShowAsAction(locationItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);

setShowAsAction第二个参数对应着menu中的showAsAction的几种模式

8.最后在重写的onOptionsItemSelected方法中处理对应item的点击事件

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_refresh:
                // 处理刷新
                return true;

            case R.id.menu_location:
                // 处理位置信息
                return true;

            case R.id.menu_settings:
                // 设置
                return true;
        }

        return super.onOptionsItemSelected(item);
    }

如有哪些地方有问题,欢迎指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crazy丶code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值