8

我正在创建一个在 ListView 中显示数据的应用程序。数据分为两种类型(流行,收藏)。我有一个活动和两个片段。片段根据其类别显示项目列表。我为此使用了 ListView。然后我有两个fragment_layouts,它们在设计上完全相似,但有不同的视图ID,即TextViews 的tvId1、tvId2。Fragments 中的代码仅在引用其对应的布局和布局中的视图方面有所不同。我从 JSON 格式的 URL 获取数据。但是每个类别都有一组不同的 URL,它们产生相同的结构只是不同的数据。然后我解析每个 Fragment 上的相应 URL 并相应地填充 ListView。到目前为止一切正常。

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

感谢任何帮助。

4

1 回答 1

11

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

创建 Fragment 时,请勿使用new Fragment(); Create a static 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");

然后你得到类型,你可以相应地调用你的webservice,然后你可以Views相应地设置。

于 2013-07-16T13:21:01.663 回答