-1

我编写了这段代码来从计算器返回值:

try {
    startActivity(intent);

    @Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            // User pressed OK.
            double value = data.getDoubleExtra("X", Double.NaN);
            if (Double.isNaN(value)) {
                // Calculation result was "Error".
            } else {
                // Calculation result ok.
            }
        } else {
        // User pressed cancel or back button.
        }
    }
}

它给了我一行中括号、逗号和单词 Intent 的语法错误:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {

一些为什么它需要分号而不是所有这些符号。你知道为什么吗?

4

2 回答 2

6

这段代码:

protected void onActivityResult (int requestCode, int resultCode, Intent data)...

声明一个方法。你不能只在任何地方声明一个方法;它必须在类体内。在这里,您尝试onActivityResult用另一种方法声明,但 Java 不允许这样做。

于 2013-02-09T00:01:59.523 回答
0

我认为你混淆了一些事情。如果您在 Eclipse 中,编辑器会尝试向您显示语法错误所在的位置,但在这种情况下,此功能会出现太多错误而无法使用。

Java 语言(如 Matt Ball 所说)将您的行视为方法的声明。它在那个地方期待的是一个指令(这就是为什么它告诉你它期待一个冒号)。如果你把它放进去,它会告诉你受保护的和无效的关键字是错误的,等等……

于 2013-02-09T00:13:29.677 回答