【安卓】菜单使用部分总结

0、在res目录下创建【menu】文件夹:

然后再在该文件中按提示创建【menu】文件

1、menu的嵌套和层级结构:

<menu
	<group
		<item
			<menu....
	<item
		<menu....

item 的4个重要属性:

id:
icon:
title:
showAsAction:显示在应用栏

2、菜单在Activity或者Fragment中一般使用:

1、重写onCreateOptionsMenu函数,引用menu文件填充:

这里,可以用menu.add函数动态添加item
并可以用findItem函数检索获取,修改其属性。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflater.inflate(R.menu.game_menu, menu);
    return true;
}

2、重写onOptionsItemsSelected函数,处理item的点击事件:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.new_game:
            newGame();
            return true;//return true表示正常结束
        case R.id.help:
            showHelp();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

3、重写onPrepareOptionsmenu函数,动态添加删除item:
方法同上,menu.add()…

3、悬浮上下文菜单:

1、调用registerForContextMenu(R.id.根布局view),向Activity中注册。一般传入List View、GridView。

2、重写onCreateContextMenu函数,实现长按时填充菜单。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
}

3、重写onContextItemSelected函数,实现item的点击。

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch (item.getItemId()) {
        case R.id.edit:
            editNote(info.id);
            return true;
        case R.id.delete:
            deleteNote(info.id);
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

4、group的重要属性:

android:checkableBehavior=""

1、single:单选按钮
2、all:全选按钮
3、none:无法选中

item可以用checked属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值