最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Android添加Menu菜单

Android crifan 4559浏览 0评论

【背景】

想要在Android中添加Menu菜单。

目前已经有了menu的xml定义了:

/res/menu/activity_main.xml

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

    <item
        android:id="@+id/menu_discard"
        android:icon="@drawable/error_white"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|withText"
        android:title="@string/discard"/>
    <item
        android:id="@+id/menu_send"
        android:icon="@drawable/forward_white"
        android:orderInCategory="2"
        android:showAsAction="ifRoom|withText"
        android:title="@string/send"/>

</menu>

也可以在ActionBar中显示出来,但是点击菜单没反应。好像也点击不到。

现在希望可以使得menu正常可以点击,可以正常添加后续处理代码。

【解决过程】

1.参考:

4、从头学Android之Menu选项菜单 – 90worker – 博客频道 – CSDN.NET

Menus | Android Developers

折腾半天后,后来这么弄就可以了:

(1)xml文件:/res/menu/activity_main.xml

定义对应的menu:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_discard"
        android:icon="@drawable/error_white"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|withText"
        android:title="@string/discard"/>
    <item
        android:id="@+id/menu_send"
        android:icon="@drawable/forward_white"
        android:orderInCategory="2"
        android:showAsAction="ifRoom|withText"
        android:title="@string/send"/>
</menu>

(2)代码中这么写:

public class MainActivity extends FragmentActivity{ 
    //...
   
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
     // Handle item selection
     switch (item.getItemId()) {
         case R.id.menu_discard:
          //Toast.makeText(MainActivity.this, "Menu Discard cliked", Toast.LENGTH_SHORT).show();
             return true;
         case R.id.menu_send:
          //Toast.makeText(MainActivity.this, "Menu Send cliked", Toast.LENGTH_SHORT).show();
         
             return true;
         default:
             return super.onOptionsItemSelected(item);
     }
 }
   
    //...
}

界面显示的效果为:

android actionbar show menu also clickable

 

【总结】

此处就是在之前已有的xml和代码的基础上,添加对应的onOptionsItemSelected,然后实现对应的处理代码,即可。

转载请注明:在路上 » 【已解决】Android添加Menu菜单

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.178 seconds, using 22.16MB memory