gpt4 book ai didi

Android menuitem onclick 处理程序的返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:53 34 4
gpt4 key购买 nike

在 android 中,当我在 xml 中定义菜单项的 onclick 处理程序时

<item
android:id="@+id/context_menu"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/word_context_menu_title"
android:onClick="deleteItem"/>

在相应的 Activity 中,我定义了一个具有以下签名的函数 deleteItem。

public boolean deleteItem(MenuItem item){
logger.info("delete button clicked");
return false;
}

我的问题是返回值是什么意思?什么情况下应该返回true,什么情况下应该返回false?

最佳答案

onMenuItemClick 文档中boolean 返回值的含义:

Return true to consume this click and prevent others from executing.

onOptionsItemSelected 的行为非常相似,答案为 here .如果我理解正确的话,这意味着无论何时你成功地处理了事件,你都应该返回true


这是一个例子。

假设您有 deleteItemonOptionsItemSelected

public boolean deleteItem(MenuItem item){
Log.v("test", "delete button clicked");
return false;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.context_menu:
Log.v("test","onOptionsItemSelected");
return true;
default:
return super.onOptionsItemSelected(item);
}
}

如果您在 deleteItem 中返回 false,您将看到它也在 onOptionsItemSelected 中处理。

>delete button clicked
>onOptionsItemSelected

如果您在 deleteItem 中返回 true,它将不再在 onOptionsItemSelected 中处理。

>delete button clicked

另请注意,您的deleteItem 句柄可以是void 方法,它会根据源代码自动返回true here .

关于Android menuitem onclick 处理程序的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23170715/

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