Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 要使接口可序列化吗_Android_Interface_Serializable - Fatal编程技术网

Android 要使接口可序列化吗

Android 要使接口可序列化吗,android,interface,serializable,Android,Interface,Serializable,我的问题是希望将接口实例发送到camera activity,以便在onActivityResult中调用该接口实现的方法。我尝试了以下使自定义接口可序列化的逻辑,但出现了错误 我只是想知道使自定义接口可序列化的正确方法,我使用了下面的代码 public interface ImageListener extends Serializable{ public void onImageCaptureResult(int requestCode, int resultCode, Intent

我的问题是希望将接口实例发送到camera activity,以便在
onActivityResult
中调用该接口实现的方法。我尝试了以下使自定义接口可序列化的逻辑,但出现了错误

我只是想知道使自定义接口可序列化的正确方法,我使用了下面的代码

public interface ImageListener extends Serializable{
    public void onImageCaptureResult(int requestCode, int resultCode, Intent data);
}
实现在我的片段中

ImageListener imageListener = new ImageListener() {
    @Override
    public void onImageCaptureResult(int requestCode, int resultCode, Intent data) {
        displayToast("image got in fragment ");
    }
};
但当我将接口实例放入
intent.putExtra
中时,如下所示

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("il",imageListener); // ERROR AT THIS LINE
getActivity().startActivityForResult(intent, ConstantsTags.REQUEST_CAMERA);
我得到了异常
java.io.NotSerializableException


请指导我如何实现这一点。

为什么您甚至需要在此处传递界面<代码>onActivityResult将使用相同的请求代码调用。当你点击该部分时,调用你的接口方法,比如
imageListener.onImageCaptureResult(…)
,因为imageListener是在my fragment中实现的,而onActivityResult回调是在activity中实现的。然后调用你片段的
onActivityResult
。请看这个如何做到这一点,我已经遵循了这些步骤,但在onActivityResult中,当我在fragment中调用startActivityForResult时,请求代码发生了更改。但当我使用getActivity()时,startActivityForResult()会:;然后我得到了正确的请求代码。但有了super call,我并没有收到fragment的OnActivityResults中的回拨。感谢Rohit,我得到了解决方案。我使用getActivity()调用了startActivity,并在onActivityResult中调用了自定义方法