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

问题描述 投票:0回答:1

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

有帮助吗?

android kotlin adapter onactivityresult appcompatactivity
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.