MenuItem的添加有两种方式:
方式一 | 方式二 |
---|---|
创建xml文件,加载xml文件 | 在代码中动态添加 |
方法一的实现:
1.在res的文件夹下创建一个menu的文件夹,在这个文件中创建xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/addItem"
android:title="Add" />
<item
android:id="@+id/deleteItem"
android:title="Delete" />
</menu>
在代码中引入这个xml文件
getMenuInflater().inflate(R.menu.main, menu);
方法二:动态添加item
menu.add(groupId, itemId, order, title);
上面的效果图中,一个是点击右上角的菜单按钮,出现菜单列表;另外一个是长按按钮出现菜单列表
右上角的方式的实现
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
menu.add(0, 1, 0, "修改");
menu.add(0, 2, 0, "查询");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.addItem:
Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show();
break;
case R.id.deleteItem:
Toast.makeText(this, "删除", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(this,"修改",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this,"查询",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
长按按钮的实现方式
按钮设置监听
findViewById(R.id.tbn).setOnCreateContextMenuListener(this);
监听的实现
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.main, menu);
menu.add(0, 1, 0, "修改");
menu.add(0, 2, 0, "查询");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.addItem:
Toast.makeText(this, "添加L", Toast.LENGTH_SHORT).show();
break;
case R.id.deleteItem:
Toast.makeText(this, "删除L", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(this,"修改L",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this,"查询L",Toast.LENGTH_SHORT).show();
break;
}
return true;
}