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); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。