菜单实现对话框

@Override  
public void onClick(View v) {
v.showContextMenu();//单击直接显示Context菜单  
}
<----
也可以通过为某一个按键注册上下文菜单,
例如Button button
为button注册上下文菜单
registerForContextMenu(button);需要常按才能跳出上下文菜单


---->

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.em_remove_from_blacklist, menu);

//MenuInflater menuInflater=new MenuInflater(this);
//menuInflater.inflate(R.menu.em_remove_from_blacklist, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getItemId() == R.id.remove) {
final String tobeRemoveUser = adapter.getItem(((AdapterContextMenuInfo) item.getMenuInfo()).position);
// remove user out from blacklist
removeOutBlacklist(tobeRemoveUser);
return true;
}
return super.onContextItemSelected(item);
}

em_remove_from_blacklist文件 位置:res-->menu--->em_remove_from_blacklist
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!----
单一菜单
--->
<item
android:id="@+id/remove"
android:title="@string/move_out_backlist"/>

</menu>
<!----
群组菜单
可以有single、none、all(多选)
--->
<group android:checkableBehavior="single"
<!---定义多个菜单项--->
<item
android:id="@+id/font_10"
android:title="@string/font_10"/>
<item
android:id="@+id/font_12"
android:title="@string/font_12"/>
使用系统的菜单,不需要写XML文件
为某个按键注册上下文菜单 registerForContextMenu(button); button是你定义的一个Button
重写函数
@Override
public void onCreateContextMenu(ContextMenu menu, View source, ContextMenu.ContextMenuInfo menuInfo)
{
menu.add(0,MENU1,0,"红色");//MENU1为宏定义
menu.add(0,MENU2,0,"绿色");
menu.add(0,MENU3,0,"蓝色");
menu.setGoupCheckable(0,true,true); //将三个菜单设置为单选菜单,其中0为群组号
//设置上下文菜单的标题,图标
menu.setHeaderIcon(R.drawable.tools);
menu.setHeaderTitle("选择背景色");

<!--
可以设置多个

-->
}
//上下文菜单的菜单项被单击时触发该方法
@Overide
public boolean onContextIntemSelected(MenuItem mi)
{
switch(mi.getItemId())
{
case MENU1:
m1.setChecked(true);//设置该菜单可选
}
}

选项菜单
重写
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
<!---
可以设置多个subMenu
SubMenu subMenuOne= menu.addSubMenu("字体大小");
subMenuOne.add(0,FONT_10,0,"10号字体");
subMenuOne.add(0,FONT_11,0,"11号字体");
SubMenu subMenuTwo= menu.addSubMenu("字体颜色");
subMenuOne.add(0,RED,0,"红色");
subMenuOne.add(0,BULE,0,"绿色");
绑定Activity
subMenuOne.setIntent(new Intent(this,OntherActivity.class));
--->
}
@public boolean onOptionsItemSelected(MenuItem mi)

使用PopupMenu
PopupMenu pupup=new PopupMenu(this,button);
getMenuInflater().inflate(R.menu.popup_menu,pupup.getMenu());
popup.setOnMenuItemClickLister( new PopupMenu.OnMenuItemClickListener(MenuItem item)
{
});
popup.show();


猜你喜欢

转载自blog.csdn.net/twtje0304_01/article/details/53821410