是否有可能在同一活动中有2个上下文菜单



我有一个活动与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添加另一个上下文菜单?

你可以在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;
}
    }   

该方法传递给您的参数将帮助您分支到不同的事情。

下面是一个例子:

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.
        }
    } 

相关内容

  • 没有找到相关文章

最新更新