1

如何根据选择的列表视图项目打开不同的上下文菜单,并根据哪个上下文菜单项目被选中,在上下文菜单中选择唯一的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   
} 

回答

0

第一方式: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   
} 

让我知道如果它有用

+0

尚未完全没有,需要得到的ID为我的列表视图项,而不是按钮。 – MacaronLover 2015-02-10 18:11:32

+0

这从lisview项目'child.getId()'得到id,你在说?如果你指的是R.id.first_button?以及我不知道这个ID,我的回答是如何得到具体的孩子,并得到它的ID和检查,所以你真的问什么? – Elltz 2015-02-11 10:52:38

+0

当我输入'R.id.'时,我的列表视图项目的ID都不会出现在弹出的菜单中 - 我的列表视图只有ID。 – MacaronLover 2015-02-11 12:35:54

相关问题