【问题标题】:Populating ListFragment from JSON从 JSON 填充 ListFragment
【发布时间】:2013-08-20 08:12:57
【问题描述】:

我有一个扩展 ActionBarActivity 并实现 ActionBar.Listener 的 Activity。 它就像一个视图寻呼机。在里面我有 3 个 ListFragment (组织在 3 个选项卡中)。 现在,我需要使用来自后端的数据填充片段。 你能帮我整理一下代码结构吗?

  1. 我应该使用 AsyncTask 还是 Loader?将它们放在单独的公共类中更好吗?

  2. 使用保留的片段通过选项卡滑动和保存数据是个好主意吗? 配置更改?

  3. 我想到的结果是一个大的加载器图像,放置在片段的中心等待 为数据。一段时间后它消失并显示 ListFragment 行内的记录。我应该放在哪里 对 AsyncTask 的调用(假设使用此类)?活动中?在每个片段内部?

  4. 哪种方式是与 Fragment 通信的正确方法,即 Activity 正在调用 onPostExecute 并且数据已准备好使用?

我对此感到很困惑,我只需要一个好的开始方式,似乎每个人都在接近 这以不同的方式,我不知道哪个是最好的......

【问题讨论】:

  • 保留是一种简单的方法,但是,有人告诉我——但从未验证过,应该避免保留,因为“Android 似乎不鼓励保留……”;不知道为什么。即便如此,如果您的活动被破坏以释放所需的内存 - 保留的碎片无论如何都会被破坏。片段在保留时,仅在活动因配置更改而被销毁时才保持活动状态。

标签: android android-fragments android-asynctask android-listfragment android-loader


【解决方案1】:

我使用 json 来填充 listfragment,如下所示:

public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View view = inflater.inflate(R.layout.activity_lista_ordens, null);
    context = inflater.getContext();
    ordemServicoLista = new ArrayList<HashMap<String, String>>();
    }

这里我执行调用webService的方法,并将所有信息放在一个listAdapter中:

    new CarregaOrdens().execute();
    setListAdapter(adapterListaOrdens);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多