如何在先前的片段中

时间:2015-09-07 12:30:45

标签: android android-fragments android-listview android-asynctask notifydatasetchanged

我有一个片段(FragmentA),我正在进行异步调用,并导航到另一个片段(FragmentB)。 FragmentB有一个listview,需要在FragmentA中调用onPostExecute方法时刷新。怎么做到这一点?

我尝试在FragmentB中使适配器静态,并从FragmentA的onPostExecute中通知它。但这没有任何帮助。

 protected void onPostExecute(String isEmpty) {
        pDialog.dismiss();
        FragmentB.adapter.notifyDateSetChanged();
        }

请建议一些方法来做到这一点!

3 个答案:

答案 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方法中做你想做的任何事情。