android - 将回调从 Activity 发送到 Fragment

标签 android callback

我的 Activity 中有一个查看寻呼机。此分页器加载 2 个 fragment (Fragment1 和 Fragment2)。 我的 Activity 有一个按钮,用于从服务器获取数据作为我的 pojo 类的列表。 Fragment1和Fragment2包含recyclerView。

我的问题是,当在我的 Activity 中获取信息时,如何刷新 Fragment1 的 recyclerView 适配器(从我的 Activity)?

我在 Activity 中创建了一个界面:

    public interface IloadCallBack {
    void onLoadAdapter(List<Suser> userList);
}

我为此创建了一个 setter :

    public void setIloadCallBack(IloadCallBack iloadCallBack) {
    this.iloadCallBack = iloadCallBack;
}

并初始化它:

iloadCallBack.onLoadAdapter(susers);

现在,我已在我的 fragment 中引用了 Activity ,但我认为这是错误的!是的?我能做什么?

最佳答案

How can do refresh recyclerView adapter in fragment 1 from my Activity when information fetched at my activity

您不需要回调机制来将数据传递给托管在 Activity 中的 fragment 。

只需在 fragment refreshList中创建一个方法

// in fragment
public void refreshList(List<Suser> userList){
      this.userList.clear();// empty list
      this.userList.addAll(userList);
      notifyDataSetChanged();
}

保留对 fragment 实例的全局引用,并从接收响应的位置调用 refreshList

public class YourActivity...{
    private Fragment fragmentInstance;


    void someMethodReceivedNewList(){
        // where you receive new list in activity
        if(fragmentinstance!=null)
            fragmentinstance.refreshList(userList);

    }

    void someMethodToLoadFragment(){
        fragmentInstance = new YourFragment1();
        ...
    }
}

关于android - 将回调从 Activity 发送到 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47968500/

相关文章:

android - 如何从另一个服务中终止一个 Android 应用程序和所有正在运行的服务/任务?

Android 从库中选择视频文件在 Nexus 5 中不起作用

iphone - 跨平台移动应用程序开发框架如何工作?

callback - Netty:writeAndFlush channel future 监听器回调何时执行?

c - 在 C 中使用回调函数进行错误处理

android - 用户不符合此次购买的条件 Android inApp

javascript - 回调未在 JavaScript 中执行

javascript - 从字符串数组分配回调事件 (PIXI.js)

javascript - 如何知道 npm `unzip` 模块何时完成解压缩文件?

java - 保持android服务长时间运行