I was trying to practice using the Recycler in Android Studio using Java.I have made so much progress so far.When I run the application it crashes immediately, I have checked the logs and I had an error on the below:Attempt to invoke virtual method 'android.view.View androidx.recyclerview.widget.RecyclerView.findViewById(int)' on a null object reference
andAttempt to invoke virtual method 'android.view.View androidx.recyclerview.widget.RecyclerView.findViewById(int)' on a null object reference
Below is my MainActivity
class:
package com.example.recyleview;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import android.os.Bundle;import android.widget.LinearLayout;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private RecyclerView recView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recView.findViewById(R.id.recView); recView.setLayoutManager(new LinearLayoutManager(this)); setContentView(R.layout.activity_main); ArrayList<Contact> contacts = new ArrayList<>(); contacts.add(new Contact("Jacob", "jacob@gmail.com", "later")); contacts.add((new Contact("Sara ", "sara@gmail.com", "later"))); contacts.add(new Contact("Nino", "nino@gmail.com", "later")); ContactsRecViewAdapter adapter = new ContactsRecViewAdapter(this); adapter.setContacts(contacts); recView.setAdapter(adapter); }}
and here is another class called ContactsRecViewAdapter
package com.example.recyleview;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList;public class ContactsRecViewAdapter extends RecyclerView.Adapter<ContactsRecViewAdapter.ViewHolder>{ private ArrayList<Contact> contacts = new ArrayList<>(); private final Context context; public ContactsRecViewAdapter(Context context) { this.context = context; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.contacts_list_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(@NonNull ContactsRecViewAdapter.ViewHolder holder, int position) { holder.txtName.setText(contacts.get(position).getName()); holder.parent.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, contacts.get(position).getName() +" Clicked", Toast.LENGTH_SHORT).show(); } }); } @Override public int getItemCount() { return contacts.size(); } public void setContacts(ArrayList<Contact> contacts) { this.contacts = contacts; notifyDataSetChanged(); } public static class ViewHolder extends RecyclerView.ViewHolder{ private final TextView txtName; private final RelativeLayout parent; public ViewHolder(@NonNull View itemView) { super(itemView); txtName = itemView.findViewById(R.id.txtName); parent = itemView.findViewById(R.id.parent); } }}