我的 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/