1

我正在尝试制作一个选项卡式 android 应用程序。两个选项卡都是列表视图。第一个选项卡从 RSS Feed 获取帖子。第二个选项卡将它们按类别显示。

问题是我想从第一个选项卡的片段中填充第二个选项卡中的列表视图。

我的第一个片段的代码是:

public class PostsFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.posts_fragment, container, false);
    return view;
}

...
...
...

// Populate the "posts_fragment.xml" with Posts 
public void populate_postview() {
    ListView lv1;

    lv1 = (ListView)getView().findViewById(R.id.postlist);
    lv1.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1 , arrays.PsychoTitle));
    lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            ...             
        }
    });

// Populate the "categories_fragment.xml" with Categories
public void populate_catview() {
    ListView lv2;

    lv2 = (ListView)getView().findViewById(R.id.catList);
    lv2.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1 , arrays.PsychoCategories));
}

这里的问题是catListinpopulate_catview()是“categories_fragment.xml”的一部分,但使用getView()返回的是“posts_fragment.xml”的当前布局。

那么如何在第二个片段中填充项目列表呢?

4

2 回答 2

1

在此处查看我的答案Call functions of Activities Belonging to a Fragment它显示足以解释它。您不应该直接调用另一个片段的方法。片段应该是自包含的。创建一个到活动的接口,然后使用第二个片段中的数据调用一个方法。

于 2012-07-27T19:37:30.667 回答
1

假设两个片段具有相同的父活动,一种解决方案是将支持列表的数据保存在父活动中。然后,当用户点击任一选项卡时,相应的片段会检索数据并相应地填充列表。

于 2012-07-27T19:41:02.243 回答