【问题标题】:Android- How to extend AppCompatActivity() in an Adapter?Android-如何在适配器中扩展 AppCompatActivity()?
【发布时间】:2019-03-06 15:01:50
【问题描述】:

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

有什么帮助吗?

【问题讨论】:

  • 你想覆盖哪个方法?
  • 您应该从适配器的父活动开始并处理意图,然后更新您的列表并调用 notifyDataSetChanged();在适配器上(不要忘记投射它)仍然来自主机活动

标签: android kotlin adapter onactivityresult appcompatactivity


【解决方案1】:

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

推荐的方法是使用回调。回调是一个interface,它是宿主活动或片段上的implements,并作为参数传递给另一个类(本例中的适配器)。您的适配器将保存对回调的引用,因此当单击视图时,将调用该引用来触发 Activity 或 Fragment 的实现。

可以看详细解释here

  1. 当点击发生时,从 Activity 启动 Intent 到相机
  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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2022-07-28
    相关资源
    最近更新 更多