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);

    }

}

 

你可能感兴趣的:(Android学习)