子菜单(Submenu),可以在任意一个Menu中的item添加一个Submenu,除了submenu,也就是说,子菜单中不可以再添加子菜单(Submenu)。
什么时候用到子菜单?类似PC的应用菜单(文件,编辑,查看等)。
新建android_Menu_Submenu工程中menu文件夹下的main.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="com.example.android_menu_submenu.MainActivity" >
<item android:id="@+id/file"
android:title="@string/file" >
<!-- "file" submenu -->
<menu>
<item android:id="@+id/create_new"
android:title="@string/create_new" />
<item android:id="@+id/open"
android:title="@string/open" />
</menu>
</item>
</menu>
strings.xml中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">android_Menu_Submenu</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="file">文件</string>
<string name="create_new">新建</string>
<string name="open">打开</string>
</resources>
MainActivity.java中
package com.example.android_menu_submenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/**
* 通常表示处理一级菜单选项的
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return super.onOptionsItemSelected(item);
}
/**
* 通常表示处理二级菜单选项的
*/
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.create_new:
Toast.makeText(MainActivity.this, "create_new", 1).show();
//Intent intent = new Intent(packageContext, cls);
//startActivity(intent);
break;
case R.id.open:
Toast.makeText(MainActivity.this, "open", 1).show();
break;
}
return super.onMenuItemSelected(featureId, item);
}
}
运行效果图
依次点击手机menu->文件->新建出现下图