【问题标题】:How to implement SwipeRefreshLayout on a ListFragment with onActivityCreated如何使用 onActivityCreated 在 ListFragment 上实现 SwipeRefreshLayout
【发布时间】:2015-11-14 19:21:32
【问题描述】:

我的应用上有一个 ListFragment,它有一个在创建 Activity 时运行的 onActivityCreated 方法:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    readJson(); //populates the list
    featured = new ArrayList();
}

我想实现一个SwipeRefreshLayout,所以我使用了Android Docs中的SwipeRefreshListFragment。但是,我注意到在 Android Docs 中,他们的片段使用 onCreateonViewCreated 方法来实现这一点。但是,由于我使用的是onActivityCreated,我无法模仿他们的设置。在这里如何使用SwipeRefreshLayout?我尝试将我的代码从onActivityCreated 更改为onCreate,但这不起作用,因为我使用onActivityCreated 方法构建了片段。

【问题讨论】:

  • 更多信息需要调查您的问题。请把你所有的代码放在这里。还有 readJson();应该在 AsyncTask 上运行。
  • @RanjithSubramaniam readJson();是通过 volley 获取数据,所以默认已经在 AsyncTask 上运行了

标签: android android-fragments android-listfragment swiperefreshlayout


【解决方案1】:

我看不到他们在片段的onCreate 中做任何事情。正如您所期望的那样,“一切”都在onCreateView 中。我已经“继承”了旧的、糟糕的代码,它可以按照你的意愿去做。唯一的区别:使用 getActivity().findViewById(...) 搜索 SwipeRefreshLayout。我不知道为什么他们没有在 onCreateView() 中保存对片段视图的引用,但我不在乎,因为我将代码移到了那里......

“我使用 onActivityCreated 构建了片段”对我来说没有任何意义。 onActivityCreated() 是片段的一种方法 - 所以它已经构建好了。你应该在 onCreateView() 中构造你的适配器,然后在那里调用你的 readJson() 。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多