Android-如何在适配器中扩展AppCompatActivity()?

时间:2019-03-06 15:01:51

标签: android kotlin adapter onactivityresult appcompatactivity

我得到一个adapter,我得到一个打开“应用程序相机”的动作,然后捕获图像。从这里开始,它必须执行一个名为onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)的函数,但由于无法扩展AppCompatActivity(),因此无法使用override这个方法。

有帮助吗?

1 个答案:

答案 0 :(得分:1)

不能,在Java类中,不能同时从两个类继承。只有一个。考虑到您的适配器已经extends RecyclerView.Adapter,那么您就不能。

推荐的方法是使用回调。回调是一个interface,它是主机活动或片段上的implements,并作为参数传递给另一个类(在这种情况下为适配器)。您的适配器将保留对回调的引用,因此,单击视图时,该引用将被称为触发对活动或片段的实现。

您可以查看详细的说明here

  1. 点击发生后,从活动开始向相机意图
  2. 在活动上的onActivityResult内拍照后,将结果传递给适配器
  3. 适配器需要一种用于接收结果的方法,应该是这样的
public void addPhoto(SomeObject object){
    yourData.add(object);
    notifyDataseChanged();
}
  1. onActivityResult中的代码应该是这样的
SomeObject objet = data... //you have to get the data and transform it to your format
adaper.addPhoto(object)