【问题标题】:Android - close Main Activity with back button ~ errorsAndroid - 使用后退按钮关闭主活动〜错误
【发布时间】:2014-04-08 15:16:22
【问题描述】:

首先,很抱歉我的编程技能低。 我正在尝试为 Android 编写我的第一个 Java 应用程序(实际上我从未学习过 Java,但最重要的是我相处得很好)。

无论如何,我正试图让这个应用程序在按下后退按钮时关闭。这是代码,有错误 [1][2][3]。

    @Override
[1]    public boolean onKeyDown(int keyCode, KeyEvent event)
       {
[2]        if ((keyCode == KeyEvent.KEYCODE_BACK))
       {
[3]            finish();
       }
           return super.onKeyDown(keyCode, event);
       }


/**
     * [1]KeyEvent cannot be resolved to a type
     * [2]KeyEvent cannot be resolved to a variable
     * [3]Cannot make a static reference to the non-static method finish() from the type 
          Activity
 */

谢谢大家:)

【问题讨论】:

  • 怎么会“返回 super.onKeyDown(keyCode, event);”在括号外?
  • 您可能缺少 KeyEvent 的导入。另外,不要从静态方法调用 finish()。
  • 在代码中它不在括号之外,我只是忘了裁剪它。对不起:S

标签: java android eclipse button back


【解决方案1】:

你需要导入KeyEvent包android.view.KeyEvent...import android.view.KeyEvent;

每次您使用来自不同 java 包的类时(java.lang 是默认值),您应该添加 import 以告知编译器应该采用该类的位置。 Eclipse/IntelliJ IDEA/Netbeans 可以帮助您使用简单的组合键来导入包,因此请尽可能使用其中之一。

对于错误 3:您的返回超出了方法体!

What is a package?

如果您想了解更多关于 android dev 的信息,请阅读this

【讨论】:

  • 我忘了裁剪 } ,抱歉。
  • 尝试添加缺少的导入,可能你的错误3是由这个引起的
  • 已修复 [2] 感谢@Marco。还有在 [1] MainActivity.PlaceholderFragment 类型的方法 onKeyDown(int, KeyEvent) 必须重写或实现超类型方法;在 [3] 相同的错误和第 4 行新错误:方法 onKeyDown(int, KeyEvent) 未定义类型 Fragment
  • 如果您使用的是 Eclipse,它可以为您组织所有导入。如果您在 PC 上使用 Ctrl + Shift + O,在 Mac 上使用 Command + shift + o。这将帮助您处理所有导入内容
  • 添加了 0 个导入...(不过非常有用!- 不知道有那个快捷方式,还是谢谢你)
【解决方案2】:

如果您正在使用活动,请尝试覆盖方法 obBackPressed

public void onBackPressed()

在 API 级别 5 中添加,当 Activity 检测到用户的 按下返回键。默认实现只是完成 当前活动,但您可以覆盖它来做任何您想做的事情。

@Override 
public void onBackPressed(){
   // Do some stuff
   finish();
   super.onBackPressed();
}

这样可以省去一些麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多