menu总结
2015-03-16
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <!-- 
     android:showAsAction="never"的时候说明菜单不会显示在ActionBar上
     android:showAsAction="ifRoom"的时候说明ActionBar有空间的时候显示菜单
     android:showAsAction="always"的时候说明ActionBar不管有没有空间都会显示菜单
     -->
    <item
        android:id="@+id/menu_save"
        android:showAsAction="always"
        android:title="第一个"/>
    <item
        android:id="@+id/menu_save1"
        android:showAsAction="always"
        android:title="第二个"/>
    <item
        android:id="@+id/menu_save2"
        android:showAsAction="always"
        android:title="第三个"/>
    <item
        android:id="@+id/menu_save3"
        android:showAsAction="always"
        android:title="第四个"/>
</menu>
生成了menu布局文件,则在Java文件里面进行加载,如果是option menu则用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
如果是上下文菜单则用
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.main, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
当使用上下文菜单的时候需要进行注册registerForContextMenu(view);
对于option menu:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
return super.onMenuItemSelected(featureId, item);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
return super.onOptionsItemSelected(item);
}
这两个方法是当点击MenuItem的时候触发
对于Context Menu:
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo acm = (AdapterContextMenuInfo) item.getMenuInfo();
//由acm可以得到ListView被点击的位置,和MenuItem的Id
return super.onContextItemSelected(item);
}