我正在尝试制作带标签的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));
}
此处的问题是catList
中的populate_catview()
是“categories_fragment.xml”的一部分,但使用getView()
会返回当前布局“posts_fragment.xml”。
那么如何在第二个片段中填充项目列表?
答案 0 :(得分:1)
在这里查看我的答案Call functions of Activities Belonging to a Fragment它足以说明问题。您不应该直接调用另一个片段的方法。片段应该是自包含的。创建活动的接口,然后使用第二个片段中的数据调用方法。
答案 1 :(得分:1)
假设两个片段具有相同的父活动,一种解决方案是将支持列表的数据保存在父活动中。然后,当用户点击任一选项卡时,相应的片段将检索数据并相应地填充列表。