我有一个片段(FragmentA),我正在进行异步调用,并导航到另一个片段(FragmentB)。 FragmentB有一个listview,需要在FragmentA中调用onPostExecute方法时刷新。怎么做到这一点?
我尝试在FragmentB中使适配器静态,并从FragmentA的onPostExecute中通知它。但这没有任何帮助。
protected void onPostExecute(String isEmpty) {
pDialog.dismiss();
FragmentB.adapter.notifyDateSetChanged();
}
请建议一些方法来做到这一点!
答案 0 :(得分:0)
片段之间的通信应该通过容器活动。 在FragmentB中创建一个公共方法,用于更新适配器数据。 在FragmentA中,当检索到的数据调用活动,然后活动应调用FragmentB请求进行数据刷新,并将他从FragmentA获取的数据传递给FragmentB。
答案 1 :(得分:0)
网络调用后您获得的数据,将其传递给FragmentA中的接口方法。使您的容器活动实现该接口并覆盖其方法。从您的容器活动,现在将数据从FragmentA传递到您的其他片段。这是最模块化的方法。 Here是一个可能对您有帮助的链接。
答案 2 :(得分:0)
创建如下界面:
public interface SetNofifyListener {
public void onNotify(boolean flag);
}
然后在你的异步类中:
SetNofifyListener mSetOnNotify;
protected void onPostExecute(String isEmpty) {
pDialog.dismiss();
mSetOnNotify.onNotify(true);
}
然后在你的fragmentB中实现这个接口,并在@Override方法中做你想做的任何事情。