如何使用接口将数据传回适配器
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
我在问之前尝试过查看类似的帖子,但我不太明白。
我实现了如下自定义界面:
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