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