2024年10月androidmenu(android menu 怎么得到item)

 更新时间:2024-10-12

  ⑴androidmenu(androidmenu怎么得到item

  ⑵androidmenu怎么得到item

  ⑶android中的menu一般是指上下文菜单或者是选项菜单

  ⑷其中上选项菜单是可以在布局中res下的menu中在xml布局中写好布局来的然后通过java代码中的onCreateOptionsMenu来加载选项菜单,android.高级版本后是自动把菜单加载到标题栏上的,而不是低版本的按下menu键才显是出来的,上下文菜单是是通过onCreateContextMenu这个方法来注册上下文菜单的

  ⑸下面讲讲如何获取menu中的item

  ⑹获取上下文菜单的item其实就是当单机选项菜单时会触发这个方法

  ⑺public?boolean?onContextItemSelected(MenuItem?mi){ //判断单击的是哪个菜单项,并针对性的作出响应。 switch?(mi.getItemId()){ case?FONT_RED: title.setTextColor(Color.RED); break; case?FONT_GREEN: title.setTextColor(Color.GREEN); break; case?FONT_BLUE: title.setTextColor(Color.BLUE); break; case?MENU: createdialog(); break; } return?true; }

  ⑻获取选项菜单的item其实就是当单击选项菜单时会触发这个方法

  ⑼public?boolean?onMenuItemSelected(int?featureId,?MenuItem?item)?{ //?利用switch根据ItemId区分点击的是哪个菜单?以便正确响应用户操作 MenuItem??temp=?item; switch?(item.getItemId())?{ case?R.id.rename: createdialog(); break; case?R.id.red: title.setTextColor(Color.RED); break; case?R.id.green: title.setTextColor(Color.GREEN); break; case?R.id.blue: title.setTextColor(Color.BLUE); break;// case?R.id. createpopupmenu(temp);// break; } return?super.onMenuItemSelected(featureId,?item); }

  ⑽android如何在系统导航栏旁显示menu按键

  ⑾要想让menu按键显示在系统导航栏旁,需要改变AndroidManifest内的内的最小sdk版本。最高为,不得高于,否则无法现实在系统导航栏旁。个人想法是:Android.后加入了ActionBar控件和虚拟的按键,而ActionBar整合了menu功能导致android.以上的menu按钮只能现实在ActionBar上,无法显示在系统导航栏旁。

  ⑿Android中Menu是一个接口,我没有在API中找到实现这个接口的类,请问menu是在什么时候实例化的

  ⒀OverridepublicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.main,menu);returntrue;}OverridepublicbooleanonOptionsItemSelected(MenuItemitem){//TODOAuto-generatedmethodstubswitch(item.getItemId()){caseR.id.你自己的操作break;}returntrue;}

  ⒁android中menu可能需要重写的方法是哪些

  ⒂可能需要重写的如下:publicbooleanonCreateOptionsMenu(Menumenu)方法只被系统调用一次,如需要动态更改菜单内容还需重写onPrepareOptionsMenu(Menumenu)方法实现[java]viewplaincopyMenum=null;intcount=;OverridepublicbooleanonPrepareOptionsMenu(Menumenu){if(count》){if(count%==){menu.removeGroup();}else{menu.add(,Menu.FIRST,,“st“);menu.add(,Menu.FIRST+,,“st“);}}count++;returnsuper.onPrepareOptionsMenu(menu);},contextmenu(长按屏幕产生)[java]viewplaincopyOverridepublicbooleanonContextItemSelected(MenuItemitem){switch(item.getItemId()){case:Toast.makeText(this,“youselect“+item.getItemId(),).show();break;case:Toast.makeText(this,“youselect“+item.getItemId(),).show();break;}returnsuper.onContextItemSelected(item);}OverridepublicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo){menu.add(,Menu.FIRST,,“st“);menu.add(,Menu.FIRST+,,“st“);super.onCreateContextMenu(menu,v,menuInfo);}

  ⒃怎么让android系统中隐藏的menu按钮显示出来

  ⒄菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu、上下文菜单(ContextMenu和子菜单(SubMenu,以下说的是创建OptionsMenu

  ⒅publicbooleanonCreateOptionsMenu(Menumenu):使用此方法调用OptionsMenu。

  ⒆publicbooleanonOptionsItemSelected(MenuItemitem):选中菜单项后发生的动作。

  ⒇publicvoidonOptionsMenuClosed(Menumenu):菜单关闭后发生的动作。

  ⒈publicbooleanonPrepareOptionsMenu(Menumenu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单。

  ⒉publicbooleanonMenuOpened(intfeatureId,Menumenu):单打开后发生的动作。

  ⒊默认样式是在屏幕底部弹出一个菜单,这个菜单我们就叫他选项菜单OptionsMenu,一般情况下,选项菜单最多显示排每排个菜单项,这些菜单项有文字有图标,也被称作IconMenus,如果多于项,从第六项开始会被隐藏,在第六项会出现一个More里,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作ExpandedMenus。下面介绍。

  ⒋/apk/res/android“

  ⒌android:orientation=“vertical“android:layout_width=“fill_parent“

  ⒍android:layout_height=“fill_parent“》

  ⒎《TextViewandroid:layout_width=“wrap_content“

  ⒏android:layout_height=“wrap_content“android:text=“请点击Menu键显示选项菜单“

  ⒐android:id=“+id/TextView“/》

  ⒑《/LinearLayout》

  ⒒。重载onCreateOptionsMenu(Menumenu)方法

  ⒓重载onCreateOptionsMenu(Menumenu)方法,并在此方法中添加菜单项,最后返回true,如果false,菜单则不会显示。

  ⒔publicbooleanonCreateOptionsMenu(Menumenu)

  ⒕publicbooleanonCreateOptionsMenu(Menumenu){

  ⒖*add()方法的四个参数,依次是:

  ⒗*、组别,如果不分组的话就写Menu.NONE,

  ⒘*、Id,这个很重要,Android根据这个Id来确定不同的菜单

  ⒙*、顺序,那个菜单现在在前面由这个参数的大小决定

  ⒚*、文本,菜单的显示文本

  ⒛menu.add(Menu.NONE,Menu.FIRST+,,“删除“).setIcon(

  android.R.drawable.ic_menu_delete);

  //setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以

  //android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的

  menu.add(Menu.NONE,Menu.FIRST+,,“保存“).setIcon(

  android.R.drawable.ic_menu_edit);

  menu.add(Menu.NONE,Menu.FIRST+,,“帮助“).setIcon(

  android.R.drawable.ic_menu_help);

  menu.add(Menu.NONE,Menu.FIRST+,,“添加“).setIcon(

  android.R.drawable.ic_menu_add);

  menu.add(Menu.NONE,Menu.FIRST+,,“详细“).setIcon(

  android.R.drawable.ic_menu_info_details);

  menu.add(Menu.NONE,Menu.FIRST+,,“发送“).setIcon(

  android.R.drawable.ic_menu_send);

  returntrue;

  使用onOptionsItemSelected(MenuItemitem)方法为菜单项注册事件

  publicbooleanonOptionsItemSelected(MenuItemitem)

  publicbooleanonOptionsItemSelected(MenuItemitem){

  switch(item.getItemId()){

  caseMenu.FIRST+:

  Toast.makeText(this,“删除菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“保存菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“帮助菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“添加菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“详细菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“发送菜单被点击了“,Toast.LENGTH_LONG).show();

  returnfalse;

  package.android.menu;

  importandroid.app.Activity;

  importandroid.os.Bundle;

  importandroid.view.Menu;

  importandroid.view.MenuItem;

  importandroid.widget.Toast;

  publilassDefaultMenuextendsActivity{

  /**Calledwhentheactivityisfirstcreated.*/

  publicvoidonCreate(BundlesavedInstanceState){

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  publicbooleanonCreateOptionsMenu(Menumenu){

  *add()方法的四个参数,依次是:

  *、组别,如果不分组的话就写Menu.NONE,

  *、Id,这个很重要,Android根据这个Id来确定不同的菜单

  *、顺序,那个菜单现在在前面由这个参数的大小决定

  *、文本,菜单的显示文本

  menu.add(Menu.NONE,Menu.FIRST+,,“删除“).setIcon(

  android.R.drawable.ic_menu_delete);

  //setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以

  //android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的

  menu.add(Menu.NONE,Menu.FIRST+,,“保存“).setIcon(

  android.R.drawable.ic_menu_edit);

  menu.add(Menu.NONE,Menu.FIRST+,,“帮助“).setIcon(

  android.R.drawable.ic_menu_help);

  menu.add(Menu.NONE,Menu.FIRST+,,“添加“).setIcon(

  android.R.drawable.ic_menu_add);

  menu.add(Menu.NONE,Menu.FIRST+,,“详细“).setIcon(

  android.R.drawable.ic_menu_info_details);

  menu.add(Menu.NONE,Menu.FIRST+,,“发送“).setIcon(

  android.R.drawable.ic_menu_send);

  returntrue;

  publicbooleanonOptionsItemSelected(MenuItemitem){

  switch(item.getItemId()){

  caseMenu.FIRST+:

  Toast.makeText(this,“删除菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“保存菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“帮助菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“添加菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“详细菜单被点击了“,Toast.LENGTH_LONG).show();

  caseMenu.FIRST+:

  Toast.makeText(this,“发送菜单被点击了“,Toast.LENGTH_LONG).show();

  returnfalse;

  publicvoidonOptionsMenuClosed(Menumenu){

  Toast.makeText(this,“选项菜单关闭了“,Toast.LENGTH_LONG).show();

  publicbooleanonPrepareOptionsMenu(Menumenu){

  Toast.makeText(this,

  “选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单“,

  Toast.LENGTH_LONG).show();

  //如果返回false,此方法就把用户点击menu的动作给消费了,onCreateOptionsMenu方法将不会被调用

  returntrue;

  android中menu怎么写

  菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用《menu》标签作为根节点。除了《menu》标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是《item》和《group》。《menu》标签没有任何属性,但可以嵌套在《item》标签中,表示子菜单的形式。不过《item》标签中不能再嵌入《item》标签。.《item》标签的属性含义如下:Id:表示菜单项的资源IDmenuCategory:同种菜单项的种类。该属性可取个值:container、system、secondary和alternative。通过menuCategroy属性可以控制菜单项的位置。例如将属性设为system,表示该菜单项是系统菜单,应放在其他种类菜单项的后面。orderInCategor:同种类菜单的排列顺序。该属性需要设置一个整数值。例如menuCategory属性值都为system的个菜单项(item、item和item)。将这个菜单项的orderInCategory属性值设为、、,那么item会显示在最前面,而item会显示在最后面。title:菜单项标题(菜单项显示的文本)titleCondensed:菜单项的短标题。当菜单项标题太长时会显示该属性值icon:菜单项图标资源IDalphabeticShortcut:菜单项的字母快捷键numericShortcut:菜单项的数字快捷键checkable:表示菜单项是否带复选框。该属性可设计为true或falsechecked:如果菜单项带复选框(checkable属性为true),该属性表示复选框默认状态是否被选中。可设置的值为true或falsevisible:菜单项默认状态是否可视enable:菜单项默认状态是否被激活

  androidmenu怎样设置item的文字

  AndroidMenu的文字有两种设置方式:

  add()方法的四个参数,依次是:

  组别,如果不分组的话就写Menu.NONE。

  Id,这个很重要,Android根据这个Id来确定不同的菜单。

  顺序,哪个菜单项在前面由这个参数的大小决定。

  文本,菜单项的显示文本。

  Android如何自定义Menu

  新建自定义Menu————》TabMenu.java如下:

  package.ncw;

  importandroid.content.Context;

  importandroid.graphics.Color;

  importandroid.graphics.drawable.ColorDrawable;

  importandroid.view.Gravity;

  importandroid.view.View;

  importandroid.view.ViewGroup;

  importandroid.widget.BaseAdapter;

  importandroid.widget.GridView;

  importandroid.widget.ImageView;

  importandroid.widget.LinearLayout;

  importandroid.widget.PopupWindow;

  importandroid.widget.AdapterView.OnItemClickListener;

  importandroid.widget.LinearLayout.LayoutParams;

  publilassTabMenuextendsPopupWindow{

  privateGridViewgridView;

  privateLinearLayoutmLayout;

  publicTabMenu(Contextcontext,OnItemClickListenerbodyClick,intcolorBgTabMenu){

  super(context);

  mLayout=newLinearLayout(context);

  mLayout.setOrientation(LinearLayout.VERTICAL);

  gridView=newGridView(context);

  gridView.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,

  LayoutParams.WRAP_CONTENT));

  gridView.setSelector(newColorDrawable(Color.TRANSPARENT));//选中的时候为透明色

  gridView.setNumColumns();

  gridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);

  gridView.setVerticalSpacing();

  gridView.setHorizontalSpacing();

  gridView.setPadding(,,,);

  gridView.setGravity(Gravity.CENTER);

  gridView.setOnItemClickListener(bodyClick);

  mLayout.addView(gridView);

  this.setContentView(mLayout);

  this.setWidth(LayoutParams.FILL_PARENT);

  this.setHeight(LayoutParams.WRAP_CONTENT);

  this.setBackgroundDrawable(newColorDrawable(colorBgTabMenu));//设置TabMenu菜单背景

  this.setFocusable(true);//menu菜单获得焦点如果没有获得焦点menu菜单中的控件事件无法响应

  publicvoidSetBodySelect(intindex,intcolorSelBody){

  intcount=gridView.getChildCount();

  for(inti=;i《count;i++){

  if(i!=index)

  ((LinearLayout)gridView.getChildAt(i))

  .setBackgroundColor(Color.TRANSPARENT);

  ((LinearLayout)gridView.getChildAt(index))

  .setBackgroundColor(colorSelBody);

  publicvoidSetBodyAdapter(MenuBodyAdapterbodyAdapter){

  gridView.setAdapter(bodyAdapter);

  *自定义Adapter,TabMenu的每个分页的主体

  staticpublilassMenuBodyAdapterextendsBaseAdapter{

  privateContextmContext;

  privateintresID;

  *设置TabMenu的分页主体

  *paramcontext

  *???????????调用方的上下文

  *paramresID

  publicMenuBodyAdapter(Contextcontext,intresID){

  this.mContext=context;

  this.resID=resID;

  publicintgetCount(){

  returnresID.length;

  publicObjectgetItem(intposition){

  returnmakeMenyBody(position);

  publiclonggetItemId(intposition){

  returnposition;

  privateLinearLayoutmakeMenyBody(intposition){

  LinearLayoutresult=newLinearLayout(this.mContext);

  result.setOrientation(LinearLayout.VERTICAL);

  result.setGravity(Gravity.CENTER_HORIZONTAL

  |Gravity.CENTER_VERTICAL);

  result.setPadding(,,,);

  ImageViewimg=newImageView(this.mContext);

  img.setBackgroundResource(resID[position]);

  result.addView(img,newLinearLayout.LayoutParams(newLayoutParams(

  LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)));

  returnresult;

  publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

  returnmakeMenyBody(position);

  使用自定义Menu————》testTabMenu.java

  package.ncw;

  importandroid.app.Activity;

  importandroid.graphics.Color;

  importandroid.os.Bundle;

  importandroid.util.Log;

  importandroid.view.Gravity;

  importandroid.view.Menu;

  importandroid.view.View;

  importandroid.widget.AdapterView;

  importandroid.widget.AdapterView.OnItemClickListener;

  publilasstestTabMenuextendsActivity{

  TabMenu.MenuBodyAdapterbodyAdapter=newTabMenu.MenuBodyAdapter(this,

  newint{R.drawable.menu_,R.drawable.menu_,

  R.drawable.menu_,R.drawable.menu_});

  TabMenutabMenu;

  publicvoidonCreate(BundlesavedInstanceState){

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  tabMenu=newTabMenu(this,newBodyClickEvent(),R.drawable.menu_bg);//出现与消失的动画

  tabMenu.update();

  tabMenu.SetBodyAdapter(bodyAdapter);

  classBodyClickEventimplementsOnItemClickListener{

  publicvoidonItemClick(AdapterView《?》arg,Viewarg,intarg,

  tabMenu.SetBodySelect(arg,Color.GRAY);

  Log.i(“Log“,“BodyClickEventimplementsOnItemClickListener“

  publicbooleanonCreateOptionsMenu(Menumenu){

  menu.add(“menu“);//必须创建一项

  returnsuper.onCreateOptionsMenu(menu);

  publicbooleanonMenuOpened(intfeatureId,Menumenu){

  if(tabMenu!=null){

  if(tabMenu.isShowing())

  tabMenu.dismiss();

  tabMenu.showAtLocation(findViewById(R.id.LinearLayout),

  Gravity.BOTTOM,,);

  returnfalse;//返回为true则显示系统menu

  《?xmlversion=“.“encoding=“utf-“?》

  《LinearLayoutxmlns:android=“

  android:id=“+id/LinearLayout“

  android:layout_width=“fill_parent“

  android:layout_height=“fill_parent“》

  android:id=“+id/TextView“

  android:layout_width=“fill_parent“

  android:layout_height=“wrap_content“

  android:text=“自定义Menu————张亚龙“》

  《/TextView》

  《/LinearLayout》

您可能感兴趣的文章:

相关文章