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