zoukankan      html  css  js  c++  java
  • Android学习(二十一)OptionsMenu选项菜单

    一、OptionsMenu选项菜单

      在应用程序中点击功能按钮会弹出选项菜单,点击可以实现具体功能。

    二、实现思路:

      1、创建选项菜单: onCreateOptionsMenu();

      2、设置菜单项可用代码动态设置menu.add();还可以通过xml设置Menuinflater.infalte(R.menu.menu);

      3、设置菜单的点击事件:onOptionsItemSelect();

    三、示例代码:

    自定义菜单XML:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context=".MainActivity">
        <item
            android:id="@+id/action_settings1"
            android:orderInCategory="100"
            android:title="菜单1"
            app:showAsAction="never" />
    
        <item
            android:id="@+id/action_settings2"
            android:orderInCategory="200"
            android:title="菜单2"
            app:showAsAction="never" />
    </menu>

    AndroidManifest.xml配置文件,添加一个新的页面

    <activity
                android:name=".MenuActivity"
                android:label="菜单设置页面"></activity>

    mainActivity.java 后台代码文件

    package com.example.zhengcheng.optionsmenudemo;
    
    import android.content.Intent;
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Toast;
    
    
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            //加载xml文件中的菜单
            //getMenuInflater().inflate(R.menu.menu_main, menu);
    
            //动态添加菜单
            menu.add(1,101,1,"菜单1");
            menu.add(1,102,1,"菜单2");
            menu.add(1,103,1,"菜单3");
            menu.add(1,104,1,"菜单4");
            menu.add(1,105,1,"菜单5");
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
    
            //获取页面中点击的哪一个菜单项
    //        switch (id){
    //            case R.id.action_settings1:
    //                Toast.makeText(this,"点击了菜单1",Toast.LENGTH_SHORT).show();
    //                break;
    //            case R.id.action_settings2:
    //                Toast.makeText(this,"点击了菜单2",Toast.LENGTH_SHORT).show();
    //                break;
    //        }
    
            //获取动态生成的菜单项
            switch (id){
                case 101:
                    //点击菜单,打开一个新的页面
                    Intent intent = new Intent(MainActivity.this,MenuActivity.class);
                    item.setIntent(intent);
                    break;
                case 102:
                    Toast.makeText(this,"点击了菜单2",Toast.LENGTH_SHORT).show();
                    break;
                case 103:
                    Toast.makeText(this,"点击了菜单3",Toast.LENGTH_SHORT).show();
                    break;
                case 104:
                    Toast.makeText(this,"点击了菜单4",Toast.LENGTH_SHORT).show();
                    break;
                case 105:
                    Toast.makeText(this,"点击了菜单5",Toast.LENGTH_SHORT).show();
                    break;
            }
    
    
            return super.onOptionsItemSelected(item);
        }
    }
  • 相关阅读:
    构建之法 团队和流程
    构建之法之个人技术和流程重点介绍
    几种数据库连接
    Ckidt
    hibernate_04_hibernate多对多的关系映射
    hibernate_03_hibernate一对多的关系映射
    hibernate_02_hibernate的入门
    hibernate_01_SSH环境搭建
    SpringBoot_05_ssm拦截器和默认欢迎页面的设置
    SSM14-通过AOP实现日志记录
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4437257.html
Copyright © 2011-2022 走看看