android:on点击xml中的菜单项设置



亲爱的,我们可以在xml中的菜单项中使用onclick吗。就像下面一样。我试过了,但不起作用。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/logout"
android:onClick="onLogOut"
android:title="@string/logout">
</item>

Java代码:

public void onLogOut(MenuItem v) {
Utility.LogError(TAG, "onLogOut Clicked");
Toast.makeText(this, "onLogOut", Toast.LENGTH_SHORT).show();
}

}

onLogOut未被调用。。。。

使用

android:onClick="onLogOutClick"

而不是

android:onClick="@string/onLogOutClick"

用于添加带有菜单项的onclick

并且在Java中,我们应该为这个链接编写方法

public void onLogOutClick(MenuItem item) {
Log.d("MenuItem", "onLogOutClick :: "+item.getItemId());  
}

您是否已经尝试过让它与onOptionItemSelected()函数一起工作?

onOptionsItemSelected

添加在API 1级中

boolean onOptionsItemSelected(MenuItem项)

只要选择了选项菜单中的某个项目,就会调用此挂钩。默认实现只是返回false以进行正常处理(根据需要调用项的Runnable或向其Handler发送消息)。您可以对任何要在没有其他设施的情况下进行处理的项目使用此方法。

编辑:

我还发现了这个用于处理点击事件

处理点击事件

若要在用户选择菜单项时执行操作,必须实现PopupMenu.OnMenuItemClickListener接口,并通过调用setOnMenuItemclickListener()将其注册到PopupMenu。当用户选择一个项目时,系统会在界面中调用onMenuItemClick()回调。

例如(示例来自网站):

public void showMenu(View v) {
PopupMenu popup = new PopupMenu(this, v);
// This activity implements OnMenuItemClickListener
popup.setOnMenuItemClickListener(this);
popup.inflate(R.menu.actions);
popup.show();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.archive:
archive(item);
return true;
case R.id.delete:
delete(item);
return true;
default:
return false;
}
}

因此,如果您插入onOptionsItemSelected或onMenuItemClick,您应该能够接收来自onLogOut的调用。

这是因为它只适用于XML布局,所以有一个菜单。对于菜单,应覆盖onItemMenuSelected()方法。阅读文档。

编辑:

哇!显然,这是可能的,但只有蜂窝和以后。

最新更新