我有TextView
的活动和图片图标。我已经通过覆盖onCreateContextMenu()
为图像图标创建了上下文菜单。
但是,我还希望为TextView
提供另一个上下文菜单。但是,我注意到我已经在使用onCreateContextMenu()
:
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(getString(R.string.option1));
menu.add(0, v.getId(), 0, getString(R.string.option2));
menu.add(0, v.getId(), 0, getString(R.string.options3));
}
因此,是否需要为TextView
添加另一个上下文菜单?
答案 0 :(得分:3)
您可以使用 onCreateContextMenu 中传递的View对象来确定菜单的所有者并相应地填充菜单。
您的代码应如下所示:
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
switch (v.getId()) {
case R.id.imageIconId:
menu.setHeaderTitle(getString(R.string.option1));
menu.add(0, v.getId(), 0, getString(R.string.option2));
menu.add(0, v.getId(), 0, getString(R.string.options3));
break;
case R.id.textViewid:
// do whatever you want with the menu object.
break;
}
}
答案 1 :(得分:2)
通过该方法传递给您的参数将帮助您分支到不同的东西。
以下是一个例子:
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if( v.equals(yourImgView) ){
menu.setHeaderTitle(getString(R.string.option1));
menu.add(0, v.getId(), 0, getString(R.string.option2));
menu.add(0, v.getId(), 0, getString(R.string.options3));
}else if ( v.equals(yourTxtView) ) {
//Do your textView things.
}
}