在IntelliJ IDEA中使用“实现方法”时,参数名称错误

时间:2012-08-17 12:43:26

标签: android intellij-idea

我正在使用IntelliJ IDEA进行Android开发。但有一件事让我烦恼。当我使用“实现方法”功能时,它会生成如下内容:

new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {
    }
}

参数名称不一致,我希望看到类似这样的内容:

new OnItemSelectedListener() {
    @Override
    public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
}

如何让IDEA生成正确的参数名称?

3 个答案:

答案 0 :(得分:2)

在代码完成中获取正确的参数名称需要源代码。 Android SDK直到4.0平台版本(API版本14)才捆绑源,因为这些源代码可以直接使用:

Sources

如果您使用的是旧平台版本see my answer for the workaround

答案 1 :(得分:1)

我怀疑你没有附加资源,因此IDEA只使用.jar来生成代码。已编译的类没有关于参数名称的信息。

所以,只需附上来源。

答案 2 :(得分:0)

我对spring BeanPostProcessor有完全相同的问题。源是通过Maven附加的,但是intelliJ仍然在命名方法参数os而不是beanbeanName。当我导航到课程时,我可以看到来源和常规名称。

编辑 - 通过重新启动IntelliJ解决了问题:一旦连接了源,您需要重新启动。