i'm confused i need your help developers!
MyApp launch ERROR java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference a work with RecyclerView and CardView with a Fragment.
@Override
public int getItemCount()
{
//ERROR NullPointerException
return visitaList.size();
}
Entire Adapter Java Code
public class VisitaAdapter extends RecyclerView.Adapter {
private Context context;
private List<Visita> visitaList;
public VisitaAdapter(Context ctx, List<Visita> visitaList){
this.context = ctx;
this.visitaList= visitaList;
}
@Override
public VisitaViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
//inflating and return our view holder
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.layout_visita, null);
return new VisitaViewHolder(view);
}
@Override
public void onBindViewHolder(VisitaViewHolder holder, int position) {
//getting the product of the specific position
Visita visita =visitaList.get(position);
//binding data with the viewholder
holder.textViewEmpresa.setText(visita.getTitle_empresa());
holder.textViewMision.setText(visita.getMision());
holder.textViewFecha.setText(visita.getFecha());
holder.imageView.setImageDrawable(context.getResources()
.getDrawable(visita.getImage()));
}
@Override
public int getItemCount()
{
//ERROR NullPointerException
return visitaList.size();
}
class VisitaViewHolder extends RecyclerView.ViewHolder {
TextView textViewEmpresa, textViewMision, textViewFecha;
ImageView imageView;
public VisitaViewHolder(View itemView) {
super(itemView);
textViewEmpresa = itemView.findViewById(R.id.textViewEmpresa);
textViewMision = itemView.findViewById(R.id.textViewMision);
textViewFecha = itemView.findViewById(R.id.textViewFecha);
imageView = itemView.findViewById(R.id.imageView);
}
}
}
Fragment launch the recyclerview
public class ReplantFrag extends Fragment {
//Adding to the list all items
List<Visita> visitaList;
//The Recycler view
RecyclerView recyclerView;
public ReplantFrag() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_replanta, container, false);
//getting the recyclerview from xml
recyclerView = (RecyclerView) view.findViewById(R.id.reciclerview);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
VisitaAdapter adapter = new VisitaAdapter(getActivity(), visitaList);
recyclerView.setAdapter(adapter);
//agregar items a la maqueta Recycler+CardView
List<Visita> visitaList = new ArrayList<>();
//adding items in list
visitaList.add(new Visita(
1,
"ARAUCO S.A.",
"Revisión Caldera",
"20-01-2018",
R.drawable.arauco_logo));
visitaList.add(new Visita(
2,
"ARAUCO S.A.",
"Inspeccion Nariz Toro",
"22-01-2018",
R.drawable.arauco_logo));
visitaList.add(new Visita(
3,
"COLBUN S.A.",
"Revisión Tuberias",
"25-01-2018",
R.drawable.colbun_logo));
return view;
}
}
Thanks Mate!!