gpt4 book ai didi

android - 将变量传递给 onOptionsItemSelected

转载 作者:行者123 更新时间:2023-11-29 02:01:25 25 4
gpt4 key购买 nike

我是 Android 的新手,如果我的问题看起来很简单,我很抱歉。我昨晚整晚都在查找它,但找不到解决方案(这让我觉得我可能在我试图实现的目标上存在根本缺陷)。

基本上,我试图从 onOptionsItemSelected 内部调用一个方法。在 Android 开发者文档 (http://developer.android.com/guide/topics/ui/menus.html) 中,他们给出了这个例子:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

但是,在我的应用程序中,我有需要输入的 onOptionsItemSelected 调用的方法。在我从 Android 开发者网站使用的示例的上下文中,这等同于我想将整数“myint”传递给 newGame 方法:

@Override
public boolean onOptionsItemSelected(MenuItem item, int myint) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame(myint);
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

当我这样做时,Eclipse 为“public boolean onOptionsItemSelected(MenuItem item) {”行提供了一个错误,提示我需要删除“@Override”命令。

我无法在 Internet 上找到任何人们以这种方式通过 onOptionsItemSelected(或类似 onConfigurationChanged 的​​方法)传递变量的示例,这就是为什么我认为我可能对其工作原理存在根本性的误解。不幸的是,我不确定从哪里开始才能正确解决这个问题。目前我正在使用“公共(public)静态”变量,所以我的方法(本例中的 newGame)可以访问它们,但我意识到使用这些类型的变量似乎通常不受欢迎。

如果有人可以帮助我解决这个问题,甚至指出我需要搜索/阅读的方向,我将不胜感激。

谢谢

斯蒂芬

最佳答案

你可以在你的类中有一个私有(private)的非静态变量,当你选择菜单项时,你可以只读:

case R.id.new_game:
newGame(this.myint);
return true;

并且在类(class)中名列前茅:

class MyActivity extends Activity {
private int myint;

您只需确保在用户点击菜单项之前为其分配了一个值!

关于android - 将变量传递给 onOptionsItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12531176/

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