如何使用接口将数据传回适配器

How can I pass data back to an adapter using an interface

我在问之前尝试过查看类似的帖子,但我不太明白。

我实现了如下自定义界面:

public interface OnChangeColor {
  void onColorChanged();
}

尝试从 activity 设置颜色,以便其中一个回收器视图项目改变颜色:

class A extends AppCompatActivity {

 void passData(){
   OnChangeColor onChangeColor = this;
   onChangeColor.onColorChanged();
 }

以及适配器内部的实现,不会调用

class MyAdapter … implements OnColorChanged{
   onColorChanged(){
      //Do something  
   }

如何使用接口将数据传回适配器?

您需要在 activity A 中设置接口的实现。

class A extends AppCompatActivity {
private MyAdapter adapter = MyAdapter()
 ....
void passData(){
   OnChangeColor onChangeColor = adapter;
   onChangeColor.onColorChanged();
 }
}

在这种情况下,您将在 MyAdapter 中的接口实例上调用 onColorChanged()

但是是的...为什么不在适配器 class 中创建方法并从 activity 调用它呢?您不需要此接口。

接口是任何class实现接口必须遵守的契约。您如何访问某些 class 的功能?只需抓住它的 instance。您的 MainActivity 未实现 OnChangeColor Interface,因此您不能使用 this。您的 adapter 正在实现 interface,因此您需要使用

   OnChangeColor onChangeColor = adapter;  // your adapter instance