如何判断哪个按钮访问了上下文菜单

时间:2011-05-22 18:29:30

标签: android button contextmenu

在我的音板应用程序中,我使用此代码创建了一个上下文菜单。

public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Choose an option");
        menu.add(0, v.getId(), 0, "Save as ringtone");
        menu.add(0, v.getId(), 0, "Save as Notification");
        menu.add(0, v.getId(), 0, "Save as Alarm");
        menu.add(0, v.getId(), 0, "Exit Menu");
}


   @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    //    Global.currentsound = info.id;
        if(item.getTitle()=="Save as ringtone"){function1(item.getItemId());}
        else if(item.getTitle()=="Save as Notification"){function2(item.getItemId());}
        else if(item.getTitle()=="Save as Alarm"){function3(item.getItemId());}
        else {return false;}
    return true;
    }

并调用了这样的按钮

按钮cmenu =(按钮)findViewById(R.id.s1sound1);
          registerForContextMenu(c菜单);

现在我想将每个按钮的信息传递给代码中的函数,以根据按下的按钮设置声音。如果不为每个按钮创建一个疯狂的单独的上下文菜单,我该怎么做呢。

由于

1 个答案:

答案 0 :(得分:2)

我认为它存储在“View v”中,Button扩展了View,所以你必须将其强制转换。我不确定,但您可以通过在

上设置断点来检查
super.onCreateContextMenu(menu, v, menuInfo);

行,并检查调试器。