新建一个工程MenuTest
1.将activity_main.xml布局文件改成如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
2.将工程目录切换成project,右击app/src/main/res->New->Directory,输入menu后点OK创建一个menu目录,右击menu->New->Menu resource file,输入main后点ok创建一个main.xml菜单文件,在其中加入两个item.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_item" android:title="Add"/>
<item android:id="@+id/remove_item" android:title="Remove"/>
</menu>
3.在MainActivity中重写onCreateOptionsMenu和onOptionsItemSelected两个方法
package com.example.menutest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//getMenuInflater()得到MenuInflater对象,再调用inflate()方法就可以给当前活动创建菜单
// inflate方法接收两个参数,第一个参数用于指定通过哪一个资源文件来创建菜单,第二个参数
//用于指定我们的菜单项将添加到哪一个Menu对象中。
getMenuInflater().inflate(R.menu.main,menu);
return true; //true表示允许创建的菜单显示出来
//false,创建的菜单将无法显示
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
break;
default:
}
return true; // true表示该方法执行完毕后,点击事件不会再向下一个事件处理方法传递了
// false表示执行完该方法后,点击事件继续向下传递
}
}
4.运行程序,标题栏右边会出现一个菜单项,点击会展开菜单,里面有两个菜单项Add和Remove,点击会触发相应的菜单项