Menu菜单键(一)

通过XML布局实现

1      步骤:

1.1    首先通过onCreateOptionsMenu()来创建菜单

1.2    然后需要onOptionsItemSelected()对其能够触发的事件进行监听

2      代码:

2.1    在res文件夹中新建一个文件夹Menu,然后再Menu文件夹中新建menu.xml文件,通过onCreateOptionsMenu()方法来装载这个菜单布局文件,menu.xml文件的代码如下:

1 <menu xmlns:android="http://schemas.android.com/apk/res/android">
2 <item android:id="@+id/about" android:title="关于" />
3 <item android:id="@+id/cancel" android:title="退出" />
4 </menu>

2.2   MenuActivity:

 1 package com.van.Menu;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.os.Bundle;
6 import android.view.Menu;
7 import android.view.MenuInflater;
8 import android.view.MenuItem;
9
10 /**
11 * 通过XML布局来实现
12 *
13 * @author Administrator
14 *
15 */
16 public class MenuActivity extends Activity {
17 @Override
18 public void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.main);
21 }
22
23 // 创建menu
24 @Override
25 public boolean onCreateOptionsMenu(Menu menu) {
26 MenuInflater inflater = getMenuInflater();
27 //设置Menu界面为res/menu/menu.xml
28 inflater.inflate(R.menu.menu, menu);
29 return true;
30 }
31
32 //处理菜单事件
33 @Override
34 public boolean onOptionsItemSelected(MenuItem item) {
35 //的到当前选择的MenuItem的ID
36 int item_id = item.getItemId();
37 switch (item_id) {
38 case R.id.about:
39 //新建一个Intent对象
40 Intent intent = new Intent();
41 //指定intent要启动的类
42 intent.setClass(MenuActivity.this, SecondActivity.class);
43 //启动一个新的Activity
44 startActivity(intent);
45 break;
46 case R.id.cancel:
47 MenuActivity.this.finish();
48 }
49 return true;
50 }
51
52 }

2.3.Layout/main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 >
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="@string/hello"
11 />
12 </LinearLayout>

3.效果图:

点击Menu键:


点击“关于”:







原文地址:https://www.cnblogs.com/jh5240/p/2229242.html