RecyclerView NullPointerException getItemCount中的问题

pus*_*ush 2 android recycler-adapter android-recyclerview

请仔细研究一下,让我知道出了什么问题.

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private ItemData[] itemsData;

    public MyAdapter(ItemData[] itemsData) {
        this.itemsData = itemsData;
    }

    public MyAdapter(String[] titles, int[] icons, String name, String email, int profile) {}

    // Create new views (invoked by the layout manager)
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.tab1list, null);
        // create ViewHolder
        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {
        // - get data from your itemsData at this position
        // - replace the contents of the view with that itemsData
        viewHolder.txtViewTitle.setText(itemsData[position].getTitle());
        viewHolder.imgViewIcon.setImageResource(itemsData[position].getImageUrl());
    }

    // inner class to hold a reference to each item of RecyclerView
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView txtViewTitle;
        public ImageView imgViewIcon;

        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);
            txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.abb);
            imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.baa);
        }
    }

    // Return the size of your itemsData (invoked by the layout manager)
    @Override
    public int getItemCount() {
        return itemsData.length;// here im getting the `null` pointer exception error
    }
}
Run Code Online (Sandbox Code Playgroud)

返回itemsData.length时出现空指针异常; 我需要在寻呼机内或滑动tablayout内设计一个列表视图.但我得到这个错误.

mak*_*tar 5

itemsData传递给参数MyAdapter的构造函数为空或正在使用未初始化的第二构造itemsData类成员.您可以将其检查为null并从getItemCount方法返回0 :

@Override
public int getItemCount() {
    return itemsData == null ? 0 : itemsData.length;
}
Run Code Online (Sandbox Code Playgroud)