Java 非活动类Android中的重写方法

Java 非活动类Android中的重写方法,java,android,overriding,Java,Android,Overriding,我正在开发一个使用默认照相机应用程序拍照的应用程序。现在我想检查一下有没有人拍了这张照片 我继续读下去,以便用这种方法可以做到: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { ... } 我的问题是,当我将该方法放在我的类中时(该类不是活动类),我得到了错误: “ActivityResult(..)上的方法必须重写或实现超类型方法” 我已经检查过了,

我正在开发一个使用默认照相机应用程序拍照的应用程序。现在我想检查一下有没有人拍了这张照片

我继续读下去,以便用这种方法可以做到:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  ...
    }
我的问题是,当我将该方法放在我的类中时(该类不是活动类),我得到了错误:

“ActivityResult(..)上的方法必须重写或实现超类型方法”

我已经检查过了,我的编译器设置为Java1.6。我的jre设置为1.6


我该怎么办?

您只能从另一个活动或片段中的活动中获取结果。 因此,您只能从扩展Activity的类或其子类(实际上与java相关,与android无关)扩展onActivityResult()。 此外,必须在调用startActivityForResult()的同一活动中扩展和定义onActivityResult()

如果您需要在另一个不扩展Activity的类中执行代码,只需实现您自己的方法并从onActivityResult()内部调用它


只能从另一个活动或片段中的活动中获取结果。 因此,您只能从扩展Activity的类或其子类(实际上与java相关,与android无关)扩展onActivityResult()。 此外,必须在调用startActivityForResult()的同一活动中扩展和定义onActivityResult()

如果您需要在另一个不扩展Activity的类中执行代码,只需实现您自己的方法并从onActivityResult()内部调用它


您需要执行
活动
,才能接收摄像头操作的结果。为什么要将代码放在其他类中?如果只是为了重复使用/组织,那么为什么不直接从您的
活动中呼叫您的其他班级呢

public class SomeOtherClass {
    public static void someOtherMethod(int requestCode, int resultCode, Intent data){
        ...
    }
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    SomeOtherClass.someOtherMethod(requestCode,resultCode,data);
    ...
}

您需要执行
活动
,才能接收摄像头操作的结果。为什么要将代码放在其他类中?如果只是为了重复使用/组织,那么为什么不直接从您的
活动中呼叫您的其他班级呢

public class SomeOtherClass {
    public static void someOtherMethod(int requestCode, int resultCode, Intent data){
        ...
    }
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    SomeOtherClass.someOtherMethod(requestCode,resultCode,data);
    ...
}

不,您不能重写一个类(活动)中的一个方法,而该类不是该类的子类。这意味着什么呢?
onActivityResult()
是类
Activity
中的一个方法。因此,如果您不扩展
活动
,则无法重写它。请将该方法放入活动类中。当你从camera应用程序返回时,它将被调用。不,你不能从一个类(活动)重写一个方法,而该类不是该类的子类。这意味着什么呢?
onActivityResult()
是类
Activity
中的一个方法。因此,如果您不扩展
活动
,则无法重写它。请将该方法放入活动类中。当你从相机应用程序返回时,它将被调用。这是我决定实施的解决方案。这就足够了。多谢各位@Benoît Bouré的结果也是正确的。这是我决定实施的解决方案。这就足够了。多谢各位@Benoît Bouré的结果也是正确的,这个解也足够好。多谢各位@c的结果也是正确的。这个解决方案也足够好。多谢各位@c的结果也是正确的。