0

I started to work with Java and AS 2 days ago. i've done everything according to instructions, but when running app in emulator he quits it and shows error

`java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.project1/com.example.user.project1.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference`

I tried to create ListView with three TextViews. Here is the code:

package com.example.user.project1;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.app.ListActivity;
import android.widget.Toast;
import android.view.View;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ListView lv = (ListView) findViewById(R.id.list);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rowlayout);
        ArrayList<Contact> list = new ArrayList<Contact>();
        list.add(new Contact("Surdialx", "Status","Available Works"));
        list.add(new Contact("Surdial", "Status","Available Works"));
        list.add(new Contact("Surdialx", "Status","Available Works"));
        list.add(new Contact("Surdial", "Status","Available Works"));
        list.add(new Contact("Surdial", "Status","Available Works"));
        list.add(new Contact("Surdialxx", "Status","Available Works"));
        SimpleAdapter adapter = new SimpleAdapter(this,list, R.layout.content_scrolling, new String[]{Contact.Serial,Contact.Status,Contact.WorkSt}, new int[]{R.id.tvSerial,R.id.tvStatus,R.id.tvWorkSt});

//As i understood problem appears here, but i can't resolve it.

        lv.setAdapter(adapter);
    }
    public class Contact extends HashMap<String, String> {

        public static final String Serial = "Serial";
        public static final String Status = "Status";
        public static final String WorkSt = "WorkSt";

        public Contact(String Ser, String Stat, String Work) {
            super();
            super.put(Serial, Ser);
            super.put(Status, Stat);
            super.put(WorkSt, Work);
        }
    }
}
fadden
  • 51,356
  • 5
  • 116
  • 166
Vernir
  • 25
  • 3

1 Answers1

2

You are trying to findViewById before setting the content to the activity. ListView should be initialized after content being set.

It should be like this:

super.onCreate(savedInstanceState);
setContentView(R.layout.rowlayout);
ListView lv = (ListView) findViewById(R.id.list);
Rohit Arya
  • 6,751
  • 1
  • 26
  • 40
  • Great.. Can you also [accept](http://meta.stackexchange.com/q/5234/179419) my answer by by clicking the check-mark. – Rohit Arya Apr 12 '16 at 20:24