【问题标题】:Button's OnClick handler can't decide if or what it wants to overrideButton 的 OnClick 处理程序无法决定是否要覆盖或要覆盖什么
【发布时间】:2012-01-27 04:02:28
【问题描述】:

我可以编译以下内容(通过注释掉“@Override”):

Button buttonAuthorizeUsers = (Button) findViewById(R.id.buttonAuthorizeUsers);
buttonAuthorizeUsers.setOnClickListener(new OnClickListener() {
    //@Override
    public void onClick(View v) {
        Intent configure = new  Intent(OnDemandAndAutomatic_Activity.this, Configure_Activity.class);  
        OnDemandAndAutomatic_Activity.this.startActivity(configure); 
    }
  });

...但这会导致我的应用程序崩溃。当我注释掉它时运行良好(但我没有按钮处理程序)。

该类应该有一个“实现 OnClickListener”吗?似乎我应该这样做,但是没有它就可以编译,并且不会用它编译(无论我是否注释掉“覆盖”,这都是不愉快的)。

【问题讨论】:

  • 检查您的导入......是否正确的 OnClickListener。

标签: android android-intent android-button


【解决方案1】:

根据我的建议,删除@Override 行是不好的。您需要在 Eclipse 中更改为 JDK 版本,那么您将不会收到此类错误。按照,按照它的步骤,

右键单击您的项目并选择属性。

然后从左侧部分选择 Java 编译器并选择您安装的 JDK 的版本。如果它已被选中,请取消选中它并尝试一下。

【讨论】:

  • 是的,我试过了,没有任何区别。不知何故,它从 1.6 恢复到 1.5(大约一个月前,当我遇到问题时,我更改了它)。重新更改为 1.6 并没有解决问题。
【解决方案2】:

不要删除@Override。只需替换

setOnClickListener(new OnClickListener() {

setOnClickListener(new View.OnClickListener() {

并在您的类声明行中将implements OnClickListener 替换为implements View.OnClickListener

保存然后编译。你的问题会得到解决的。

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多