-1

When I run the app I am getting following error

Unable to start activity ComponentInfo java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget.RecyclerView$Adapter)' on a null object reference

here is my mainactivity.java class

public class MainActivity extends AppCompatActivity {

    ArrayList<Contact> contacts;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        RecyclerView rvContacts = findViewById(R.id.rvContacts);
        contacts = Contact.createContactsList(20);
        ContactsAdapter adapter = new ContactsAdapter();items
        rvContacts.setAdapter(adapter);
        rvContacts.setLayoutManager(new LinearLayoutManager(this));
    }
}

2 Answers2

1

you need to cast RecyclerView like this..

RecyclerView rvContacts = (RecyclerView)findViewById(R.id.rvContacts);

and also you need to call setContentView(R.id.your_layout) to set your layout.

Chathu_sm
  • 85
  • 9
0

you are missing setContentView() in your onCreate of MainActivity

so add line setContentView(R.layout.activity_main); below super.onCreate(savedInstanceState); check code

 public class MainActivity extends AppCompatActivity {

    ArrayList<Contact> contacts;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  //change here

        RecyclerView rvContacts = findViewById(R.id.rvContacts);

        // Initialize contacts
        contacts = Contact.createContactsList(20);
        // Create adapter passing in the sample user data
        ContactsAdapter adapter = new ContactsAdapter();
        // Attach the adapter to the recyclerview to populate items
        rvContacts.setAdapter(adapter);
        // Set layout manager to position the items
        rvContacts.setLayoutManager(new LinearLayoutManager(this));
        // That's all!
    }
}
Omkar
  • 3,040
  • 1
  • 22
  • 42