Android 使用片段实例生成GridView

Android 使用片段实例生成GridView,android,gridview,android-fragments,Android,Gridview,Android Fragments,我想实现GridView,使每个单元格都包含一个类的对象。为此,我实现了片段类: public class DayUC extends Fragment { /* some variables */ // use to create instance of class with initial parameters public static DayUC newInstance(//initial parameters) { DayUC

我想实现GridView,使每个单元格都包含一个类的对象。为此,我实现了片段类:

public class DayUC extends Fragment {

    /*
    some variables
    */

    // use to create instance of class with initial parameters
    public static DayUC newInstance(//initial parameters) {
        DayUC dayUC = new DayUC();
        /*
        set parameters
        */
        return dayUC;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_layout, container, false);
        initialization()       //initial variables and view elemans (textView, ...)
        return rootView;
    }
}
我还创建了GridViewAdapter:

public class GridViewAdapter extends BaseAdapter {

    private ArrayList<DayUC> gridList;      //list of grid DayUC objects
    Context context;

    public GridViewAdapter(Context context, ArrayList<DayUC> gridList) {
        this.gridList = gridList;
        this.context = context;
    }

    @Override
    public int getCount() {
        return gridList.size();
    }

    @Override
    public DayUC getItem(int position) {
        return gridList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return gridList.get(position).getView();
    }
}
公共类GridViewAdapter扩展了BaseAdapter{
私有ArrayList gridList;//网格对象列表
语境;
公共GridViewAdapter(上下文上下文,ArrayList gridList){
this.gridList=gridList;
this.context=上下文;
}
@凌驾
public int getCount(){
返回gridList.size();
}
@凌驾
公共DayUC getItem(内部位置){
返回gridList.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
返回gridList.get(position.getView();
}
}
但当我创建GridView时,它会抛出NullPointerException!我发现在gridView元素(DayUC)中,onCreateView()从未调用。所以gridList.get(position).getView()返回null

有人能帮我解决这个问题吗?我怎样才能强制调用onCreateView

编辑:添加了MainActivity onCreate方法

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DayUC[] dayUC = new DayUC[42];

        monthGridView = (GridView) findViewById(R.id.month_view);

        for (int i = 0; i < 42; i++) {
            dayUC[i] = DayUC.newInstance(//inpute arguments)
            dayUCList.add(dayUC[i]);
            monthCal.add(Calendar.DATE, 1);
        }

        gridViewAdapter = new MonthGridViewAdapter(getActivity(), dayUCList);
        monthGridView.setAdapter(gridViewAdapter);
        gridViewAdapter.notifyDataSetChanged();
    }
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DayUC[]DayUC=新的DayUC[42];
monthGridView=(GridView)findViewById(R.id.month\u视图);
对于(int i=0;i<42;i++){
dayUC[i]=dayUC.newInstance(//输入参数)
dayUCList.add(dayUC[i]);
添加月份(日历日期,1);
}
gridViewAdapter=newmonthGridViewAdapter(getActivity(),dayUCList);
setAdapter(gridViewAdapter);
gridViewAdapter.notifyDataSetChanged();
}

初始化ArrayList gridList的位置?为什么要在ArrayList中存储
DayUC
片段对象?在OnCreateView中添加gridview(rootview.findviewbyid(gridviewid))并设置适配器或添加初始化()方法,以便找到合适的错误。如果您的代码完全错误,您需要阅读
GridView
Fragment
文档才能正确移动。@Nag:在我的主要活动中