将变量传递给onOptionsItemSelected

时间:2012-09-21 13:04:58

标签: android variables

我对Android很新,很抱歉,如果我的问题看起来很基本。我昨晚花了很多时间来查找它并找不到解决方案(这让我觉得我可能在我想要实现的目标方面存在根本缺陷)。

基本上,我正在尝试从onOptionsItemSelected内部调用一个方法。在Android Developer文档(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”命令。

我无法在互联网上找到任何人们通过onOptionsItemSelected(或类似onConfigurationChanged等方法)传递变量的例子,这就是为什么我认为我可能对其工作原理有一个基本的误解。不幸的是,我不确定从哪里开始正确解决这个问题。目前我正在使用“公共静态”变量,所以我的方法(本例中的newGame)可以访问它们,但我意识到使用这些类型的变量似乎一般都不赞成。

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

由于

斯蒂芬

1 个答案:

答案 0 :(得分:1)

您的类中可以有一个私有非静态变量,当您选择菜单项时,您只需阅读:

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

并且在班上名列前茅:

class MyActivity extends Activity {
    private int myint;

您必须确保在用户点击菜单项之前为其分配了值!