Android基础:Menu

menu:菜单,有一个或多个item节点组成。

属性:

android:orderInCategory=“” 排序,从小到大
android:showAsAction=”never” 不在actionbar上显示
android:showAsAction=”always” 在actionbar上显示

见下图:
这里写图片描述

方法:

onCreateOptionsMenu(Menu menu) {} 创建menu:xml–view
onOptionsItemSelected(MenuItem item) {}:menu的item被选中的时候调用

XML:

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

    <item
        android:id="@+id/menu1"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="menu1"/>

    <item
        android:id="@+id/menu2"
        android:orderInCategory="90"
        android:icon="@drawable/ic_launcher"
        android:showAsAction="always"        
        android:title="menu2"/>

      <item
        android:id="@+id/menu3"
        android:orderInCategory="95"
        android:showAsAction="never"
        android:title="menu3"/>
</menu>

代码逻辑:点击菜单,弹出menu视图,点击每一个item,打印对应的log。

这里写图片描述

代码:

package com.examp.menudemo01;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

    private static final String tag = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu1:
            Log.d(tag, "menu1");
            break;
        case R.id.menu2:

            Log.d(tag, "menu2");
            break;
        case R.id.menu3:

            Log.d(tag, "menu3");
            break;

        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }

}

点击下载源码

onPrepareOptionsMenu(Menu menu) 方法会在onOptionsItemSelected(MenuItem item)前调用

ActionBar上创建menuItem

这里写图片描述

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    //代码创建menuItem
    MenuItem item = menu.add(0, R.id.item2, 0, "location");
    item.setIcon(R.mipmap.ic_action_location);
    locationItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
MenuItemCompat.setShowAsAction(locationItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);
    return super.onCreateOptionsMenu(menu);
}

方法add()中的参数

add (int groupId,  int itemId,  int order, int titleRes)
groupId:menuItem所在的group的id
itemId:menuItem的id
order:menuItemmenu的序号
titleRes:menuItem的title文本
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值