我有两个按钮,每个按钮都有一个上下文菜单,但我不确定如何更改第二个菜单中的菜单项。我的代码只显示我第一个按钮的项目。
Button Button1 = (Button) findViewById(R.id.Button1);
registerForContextMenu(Button1);
Button Button2 = (Button) findViewById(R.id.Button3);
registerForContextMenu(Button2);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Select Notification");
menu.add(0, v.getId(), 0, "Algebraic");
menu.add(0, v.getId(), 0, "Knuckle Train");
menu.add(0, v.getId(), 0, "In My Element ");
menu.add(0, v.getId(), 0, "Let's Get This Party");
menu.add(0, v.getId(), 0, "Shmowzow");
menu.add(0, v.getId(), 0, "What the Jug");
menu.add(0, v.getId(), 0, "Word to Your Mother");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Algebraic"){function1(item.getItemId());}
else if(item.getTitle()=="Knuckle Train"){function2(item.getItemId());}
else if(item.getTitle()=="In My Element"){function3(item.getItemId());}
else if(item.getTitle()=="Let's Get This Party"){function4(item.getItemId());}
else if(item.getTitle()=="Shmowzow"){function5(item.getItemId());}
else if(item.getTitle()=="What the Jug"){function6(item.getItemId());}
else if(item.getTitle()=="Word to Your Mother"){function7(item.getItemId());}
else {return false;}
return true;
}
答案 0 :(得分:7)
比较传入的按钮作为onCreateContextMenu中的视图:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == Button1) {
menu.setHeaderTitle("Select Notification");
menu.add(0, v.getId(), 0, "Algebraic");
menu.add(0, v.getId(), 0, "Knuckle Train");
menu.add(0, v.getId(), 0, "In My Element ");
menu.add(0, v.getId(), 0, "Let's Get This Party");
menu.add(0, v.getId(), 0, "Shmowzow");
menu.add(0, v.getId(), 0, "What the Jug");
menu.add(0, v.getId(), 0, "Word to Your Mother");
} else if (v == Button2) {
// stuff for Button2
}
}
答案 1 :(得分:0)
在Android中为不同的小部件添加ContextMenu
项非常简单。让我解释一下如何做到这一点。
例如,XML文件中有两个小部件,其中包含活动的布局。
您已使用下面给出的代码
为它们设置了侦听器 this.registerForContextMenu(txtnum1);
this.registerForContextMenu(txtnum2);
然后重写以下方法
@Override
public void onCreateContextMenu(ContextMenu mymenu, View v, ContextMenuInfo menuInfo)
现在让我们考虑如果用户长按 txtnum1 ,你想要显示两个项目square和qube作为上下文菜单项,如果用户长按 txtnum2 你想要将xxx
和yyy
显示为上下文菜单项。
应该使用下面给出的代码
来完成@Override
public void onCreateContextMenu(ContextMenu mymenu, View v, ContextMenuInfo menuInfo)
{
Toast.makeText(this,String.valueOf(v.getId()),1000).show();
if(v.equals(txtnum1)==true)
{
mymenu.add(0,1,0,"Square");
mymenu.add(0,2,0,"Qube");
}
else if(v.equals(txtnum2)==true)
{
mymenu.add(0,1,0,"xxx");
mymenu.add(0,2,0,"yyy");
}
super.onCreateContextMenu(mymenu, v, menuInfo);
}