(一)Android布局时资源文件使用

(一)Android布局时菜单资源文件使用

Android Menu资源的使用:

菜单分为三种:OptionsMenu(选项菜单);ContextMenu(上下文菜单);SubMenu(子菜单);

OptionsMenu默认情况下是在点击Menu键后出现在底部。ContextMenu常常和长按事件或其他手势动作结合使用。实现的方式可以分为java代码实现和xml资源文件。

1.使用Java代码实现:(以OptionsMenuContextMenu为例)

 调用资源文件:[<package_name>.]R.menu.<file_name>;

public boolean onCreateOptionsMenu(Menu menu);//调用选项菜单

public boolean onOptionsItemSelected(MenuItem item);//选项菜单选择后动作

public void onOptionsMenuClosed(Menu menu);//菜单关闭后

public boolean onPrepareOptionsMenu(Menu menu);//菜单打开前

public boolean onMenuOpened(int featureId, Menu menu);//菜单打开后

后三个函数可以用来根据设计要求对菜单进行动作设置;

ContextMenu就是将OptionsMenu替换,例如onCreateContextMenu();

 

实例代码:(与长按事件结合使用的上下文菜单的调用)

A.registerForContextMenu(XXXX);//XXXX注册上下文菜单

B.XXXX.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> ada, View view,

int arg2, long longIndex) {

index=arg2;//这里是将选择的listview的选项传递给后面的动作处理

XXXX.showContextMenu();//显示菜单

return true;

}

 

});

}

C.public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo){

menu.setHeaderTitle("");

menu.add(0,0, Menu.NONE,"");

menu.add(0,1, Menu.NONE,"");

//menu.add(0,2,0,"").setIcon(R.drawable.XXXX);添加图标

//关于menu.add():第一个int表示groupid,可以实现setGroupXXX()的统一管理;第二个int表示menu里面选项的索引号;第三个int表示menu的顺序,如果默认为添加顺序则为0Menu.NONE;第四个是文本信息。

}

D.public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()) {

case 0:

       case 1:.......

     }}

2.使用菜单资源文件

Xml文件访问@[<package_name>:]menu/file_name

菜单资源的根元素通常是<menu.../>,这里不详细说明资源菜单的内容。

与上面的java方式的区别是需要增加一个“装填”菜单的动作:

例如:

Public onCreateOptiosMenu(Menu menu){

  MenuInflater inflator= new MenuInflater(this);

Inflator.inflate(R.menu.file_name,menu)//一般资源文件在res/menu

 menu.setHeaderIcon(R.drawable.XXXX);//标题图片

menu.setHeaderTitle(“”);//标题

Return super.onCreateOptionsMenu(menu);

}

其余与上述一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值