Android - 多次实例化片段?

时间:2013-07-16 12:59:01

标签: android fragment

我正在创建一个在ListView中显示数据的应用。数据分为两种类型(热门,收藏)。我有一个活动和两个碎片。片段根据类别显示项目列表。我使用了ListView。然后,我有两个fragment_layout,它们在设计上完全相同,但具有不同的视图ID,即用于TextViews的tvId1,tvId2。片段中的代码仅在引用布局中的相应布局和视图时有所不同。我从一个JSON格式的URL中获取数据。但是每个类别都有一组不同的URL,它们只产生不同数据的相同结构。然后我解析每个片段上的相应URL并相应地填充ListView。一切都运作到目前为止。

我想知道的是,有没有一种方法可以使用一个片段并使用两次,每种片段使用不同的数据集?这样,如果出现新类别,我不必创建另一个片段。

感谢任何帮助。

1 个答案:

答案 0 :(得分:11)

当然可以。事实上你应该这样做。

创建片段时不要使用new Fragment(); 创建一个以数据为参数的静态newInstance函数。

public static MyFragment newInstance(int type) {
    MyFragment fragment = new MyFragment();
    Bundle args = new Bundle();
    args.putInt("type", type);
    fragment.setArguments(args);
    return fragment;
}

然后你可以使用下面的方法获取onCreate()方法的类型:

getArguments().getInt("type");

然后你得到了类型,你可以相应地调用你的web服务,然后你可以相应地设置Views