基于选定列表视图项目的一个活动中的多个上下文菜单
问题描述:
如何根据选择的列表视图项目打开不同的上下文菜单,并根据哪个上下文菜单项目被选中,在上下文菜单中选择唯一的if语句?基于选定列表视图项目的一个活动中的多个上下文菜单
下面的代码适用于按钮,但是如何替代列表视图项目+上面要求的内容?
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if(v.getId() == R.id.first_button)
inflate one menu
else if(v.getId() == R.id.second_button)
inflate another menu
}
答
第一方式:ContextMenu.ContextMenuInfo
有关于应显示上下文菜单中的项目额外信息。这些信息将取决于V类的不同而不同。这样你就可以做到这一点,复制并粘贴此
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo info) {
super.onCreateContextMenu(menu, v, info);
int index = info.position; //The position in the adapter for which the context menu is being displayed.
View child = info.targetView;//The child view for which the context menu is being displayed.
// so for your case you have to use the child,because of your way about it
if(child.getId() == R.id.first_button)
inflate one menu
else if(child.getId() == R.id.second_button)
inflate another menu
}
让我知道如果它有用
尚未完全没有,需要得到的ID为我的列表视图项,而不是按钮。 – MacaronLover 2015-02-10 18:11:32
这从lisview项目'child.getId()'得到id,你在说?如果你指的是R.id.first_button?以及我不知道这个ID,我的回答是如何得到具体的孩子,并得到它的ID和检查,所以你真的问什么? – Elltz 2015-02-11 10:52:38
当我输入'R.id.'时,我的列表视图项目的ID都不会出现在弹出的菜单中 - 我的列表视图只有ID。 – MacaronLover 2015-02-11 12:35:54