activity/fragment与adapter之间通信

您所在的位置:网站首页 fragment和activity之间的关系 activity/fragment与adapter之间通信

activity/fragment与adapter之间通信

2024-07-16 05:25| 来源: 网络整理| 查看: 265

activity/fragment与adapter之间通信

我们在使用各种需要adapter的控件的时候,不免需要在activity/fragment和adapter之间传递数据或者调用某个方法。一般基本都是需要在adapter里调用activity里的某个方法,如果是需要activity调用adapter里方法直接用adapter的对象调用就行。 这里提供的方法是写个回调的接口,不推荐将activity的引用传入adapter,如果adapter有耗时操作可能会导致内存泄漏。 比如说我现在有一个activity里的一个recyclerview的adapter,recyclerview的每一个item里都有一个textview,我需要在textview的内容是“你好”的时候将这个textview传给activity进行进一步的操作。 1.首先在adapter里新建个接口:

public interface Interface{ void onWork(View view);//在这里可以自定义想要实现的方法,一般是传入adapter里的变量供activity使用。 }

2.然后在adapter里加个成员变量:

private Interface mListener;

3.然后在adapter的构造方法里传入这个接口的实例,如果你的构造方法已经有很多使用不方便改可以加个构造方法:

Interface(Interface mListener){ this.mListener = mListener; }

4.然后在adapter里适当的地方用mListener调用接口里的方法,本例中应该是在onBindViewHolder里调用如下代码:

if(TextUtil.equals("你好",textview.getText.toString()){ mListener.onWork(textview); }

4.去activity里在new adapter的地方改成如下代码:

Adapter adapter = new Adapter(new Adapter.Interface{//监听adapter的回调方法 @Override public void onWork(View view) { fun(view);//在这里处理从adapter获取到的变量即可。 } })

以上,欢迎指正。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3