在android中的一个片段中包含两个片段的方法

时间:2013-11-26 23:29:47

标签: android android-layout android-fragments fragment android-listfragment

目前有两个片段:一个用于添加图像视图的区域,文本视图。 另一个是列表片段

我想将两者都包含在一个片段中,这意味着区域片段位于列表片段的顶部,但是,它们是两个类,所以如何包含它们,或者我需要将代码重新排列为一个类?

另外,如何将列表片段更改为片段?(因为片段类中没有setadapter和onclick事件)。谢谢。

代码示例:List片段部分

public class SlidingMenuListFragment extends ListFragment {
    protected List<SlidingMenuListItem> slidingMenuList;
    private SlidingMenuBuilderBase slidingMenuBuilderBase;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {
            // We set here a custom layout which uses holo light theme colors.
            return inflater.inflate(R.layout.sliding_menu_holo_light_list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            // We get a list from our specially created list data class.
            slidingMenuList = SlidingMenuList.getSlidingMenu(getActivity());
            if (slidingMenuList == null)
                    return;

            // We pass our taken list to the adapter.
            SlidingMenuListAdapter adapter = new SlidingMenuListAdapter(
                            getActivity(), R.layout.sliding_menu_holo_light_list_row, slidingMenuList);
            setListAdapter(adapter);
    }

    // We could define item click actions here, but instead we want our builder
    // to be responsible for that.
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);
            l.setSelection(position);
            SlidingMenuListItem item = slidingMenuList.get(position);
            slidingMenuBuilderBase.onListItemClick(item);
    }

    // We can not provide a builder as an argument inside a fragment
    // constructor, so that is why we have separate method for that.
    public void setMenuBuilder(SlidingMenuBuilderBase slidingMenuBuilderBase) {
            this.slidingMenuBuilderBase = slidingMenuBuilderBase;
    }

1 个答案:

答案 0 :(得分:1)

自Android 4.2起,您可以使用Nested Fragments。 对于旧版本,您应该使用Support Library