要创建包含视图的片段,必须始终覆盖Fragment类

时间:2012-09-13 16:51:49

标签: android android-fragments

创建以编程方式保存视图的Fragment时,必须始终扩展fragment类并覆盖OnCreateView方法。还有另一种更简单的方法(比如创建一个片段并将视图ID传递给它)。

谢谢

1 个答案:

答案 0 :(得分:0)

似乎是真的,需要创建分离的类扩展一个Fragment。但是你仍然可以将viewId作为参数传递。系统需要能够在必要时重新实例化片段。我会这样做:

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class ViewFragment extends Fragment {

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

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Bundle args = getArguments();
        int contentId = args.getInt("contentId");
        return inflater.inflate(contentId, container, false);
    }
}