gpt4 book ai didi

android - 传递触发上下文菜单的按钮

转载 作者:行者123 更新时间:2023-11-30 04:19:36 24 4
gpt4 key购买 nike

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

谢谢贾斯汀

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

@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);
}
}

最佳答案

一种方法是在注册上下文菜单之前为 View 设置一个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)
...
}

关于android - 传递触发上下文菜单的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com