Android 触发上下文菜单的“通过”按钮

Android 触发上下文菜单的“通过”按钮,android,Android,所以我对android编程和学习是新手。我目前正在开发一个音板,允许用户将声音设置为铃声或通知。我已经成功设置了上下文菜单,我能够区分用户在上下文菜单中单击的内容。我唯一的问题是我不知道如何辨别哪个按钮触发了contextmenu。有人能帮忙吗 谢谢 贾斯汀 编辑:我找到了一个解决方案。我是这样做的: @Override public void onCreateContextMenu(ContextMenu menu, View v,

所以我对android编程和学习是新手。我目前正在开发一个音板,允许用户将声音设置为铃声或通知。我已经成功设置了上下文菜单,我能够区分用户在上下文菜单中单击的内容。我唯一的问题是我不知道如何辨别哪个按钮触发了contextmenu。有人能帮忙吗

谢谢 贾斯汀

编辑:我找到了一个解决方案。我是这样做的:

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options_menu, menu);
        lastButton = (Button) v;
    }

 @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

        switch (item.getItemId()) {
            case R.id.Ringtone:
                if(lastButton == SoundButton)
                Toast.makeText(getApplicationContext(), "Ringtone soundbutton selected", Toast.LENGTH_SHORT).show();
                return true;
            case R.id.Notification:
                if(lastButton == SoundButtonButton){
                    Toast.makeText(getApplicationContext(), "Notification soundbutton set", Toast.LENGTH_SHORT).show();
                }

                return true;
            default:
                return super.onContextItemSelected(item);
        }
    }

一种方法是在注册上下文菜单之前为视图设置
id
。如果您正在使用按钮:

    Button button = ...;
    button.setId(some_id);

    Button button2 = ...;
    button2.setId(some_id_2);
    ...

    registerForContextMenu(b);  

    public boolean onContextItemSelected(MenuItem item)
    {
        int id = item.getItemId();

        if (id == some_id)
            ...
        else if (id == some_id_2)
            ...
    }  

一种方法是在注册上下文菜单之前为视图设置
id
。如果您正在使用按钮:

    Button button = ...;
    button.setId(some_id);

    Button button2 = ...;
    button2.setId(some_id_2);
    ...

    registerForContextMenu(b);  

    public boolean onContextItemSelected(MenuItem item)
    {
        int id = item.getItemId();

        if (id == some_id)
            ...
        else if (id == some_id_2)
            ...
    }  

设置按钮id会导致布局混乱。几个按钮在彼此的上面。使用layout.xml中声明的按钮id也不起作用。设置按钮id会导致布局混乱。几个按钮在彼此的上面。使用layout.xml中声明的按钮id也不起作用。