I'm trying to show a CardviewLayout inside a Fragment, but I can not do it, it shows the following error:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at ibk.center.contact.demo.democontactcenteribk.adapter.ContactAdapter.onBindViewHolder(ContactAdapter.java:33)
at ibk.center.contact.demo.democontactcenteribk.adapter.ContactAdapter.onBindViewHolder(ContactAdapter.java:17)
My ContactAdapter Class:
private List<ContactInfo> contactList;
public ContactAdapter(List<ContactInfo> contactList) {
this.contactList = contactList;
}
@Override
public int getItemCount() {
return contactList.size();
}
@Override
public void onBindViewHolder(ContactViewHolder contactViewHolder, int i) {
ContactInfo ci = contactList.get(i);
contactViewHolder.vName.setText(ci.name);
contactViewHolder.vSurname.setText(ci.surname);
contactViewHolder.vEmail.setText(ci.email);
//contactViewHolder.vTitle.setText(ci.name + " " + ci.surname);
contactViewHolder.vTitle.setText(ci.fechaEntrada);
contactViewHolder.vSede.setText(ci.sede);
}
@Override
public ContactViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.
from(viewGroup.getContext()).
inflate(R.layout.activity_cardview, viewGroup, false);
return new ContactViewHolder(itemView);
}
public static class ContactViewHolder extends RecyclerView.ViewHolder {
TextView vName;
TextView vSurname;
TextView vEmail;
TextView vTitle;
TextView vSede;
public ContactViewHolder(View v) {
super(v);
vName = (TextView) v.findViewById(R.id.txtName);
vSurname = (TextView) v.findViewById(R.id.txtSurname);
vEmail = (TextView) v.findViewById(R.id.txtEmail);
vTitle = (TextView) v.findViewById(R.id.title);
vSede = (TextView) v.findViewById(R.id.txtAdd);
}
}
And my Fragment:
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
RecyclerView recList = (RecyclerView) getActivity().findViewById(R.id.cardList);
recList.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
llm.setOrientation(LinearLayoutManager.VERTICAL);
recList.setLayoutManager(llm);
ContactAdapter ca = new ContactAdapter(createList(30));
recList.setAdapter(ca);
}
That code is in the Fragment, but I have not modified the MainActivity.
The side menu if I can show it and the fragment without the CardView too, but when I put the code is what gives me that error, I think you can not find it in the view or something out there or the controls
I mark error in this line:
ci.name = sdfTiempo.format(unaFecha.getTime()).toString();
I hope you can help me, Thanks