创建选项菜单:onCreateOptionsMenu(Menu menu)
设置菜单项由两种方式:用代码动态设置MenuItem item = menu.add(1, 100, 1, "菜单一");
第一个参数所在菜单的id,添加的菜单项的id,排序时用的一个整型值(相当于优先级,值越小 越靠前),菜单项显示的文本信息
通过xml静态设置 getMenuInflater().inflate(R.menu.main, menu);
设置菜单项点击事件:onOptionsItemSelected(MenuItem item)
demo代码
package com.example.optionmenudemo;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
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);//使用xml文件静态加载选项菜单的选项
//使用代码动态添加
MenuItem item = menu.add(1, 100, 1, "菜单一");
item.setTitle("aaa");
item.setIcon(R.drawable.ic_launcher);
menu.add(1, 101, 2, "菜单二");
menu.add(1, 102, 1, "菜单三");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case 100:
Intent intent = new Intent(this, SecondActivity.class);
item.setIntent(intent);
break;
case 101:
Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_SHORT)
.show();
break;
case 102:
Toast.makeText(MainActivity.this, "点击了菜单三", Toast.LENGTH_SHORT)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
}
如果通过xml静态添加菜单项
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!--android:showAsAction
是否将你的选项菜单项放在Action Bar的右上角
1.alaways:这个值会使菜单项一直显示在ActionBar上。
2.ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。
3.never:这个值菜单永远不会出现在ActionBar是。
4.withText:这个值使菜单和它的图标,菜单文本一起显示。
-->
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="菜单一"/>
<item
android:id="@+id/action_settings1"
android:orderInCategory="101"
android:showAsAction="never"
android:title="菜单二"/>
<item
android:id="@+id/action_settings2"
android:orderInCategory="102"
android:showAsAction="never"
android:title="菜单三"/>
</menu>