Called: java.lang.NullPointerException: attempt to call the virtual method 'void ... by reference to a null object

I am looking through some question here on stack overflow, but this did not solve my problem.

here is my code.

   public class MenuListActivity extends ListActivity {
String MenuNames[] = {"Consultation", "Medicine", "Diseases", "Doctor"};
protected void onCreateView(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_list);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MenuNames);
    final ListView lv = (ListView) findViewById(R.id.listView1);

    lv.setAdapter(adapter);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            if(position == 1) {
                //code specific to first list item    
                Intent myIntent = new Intent(v.getContext(), ConsultationActivity.class);
                startActivity(myIntent);
            }


        }

    }
     );

}

Logcat.

    10-12 10:53:37.572: E/AndroidRuntime(10605): FATAL EXCEPTION: main
    10-12 10:53:37.572: E/AndroidRuntime(10605): Process: com.capstone.medicinehealthguide, PID:     10605
    10-12 10:53:37.572: E/AndroidRuntime(10605): java.lang.RuntimeException: Unable to start activity      ComponentInfo{com.capstone.medicinehealthguide/com.capstone.medicinehealthguide.MenuListActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2317)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.access$800(ActivityThread.java:143)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Handler.dispatchMessage(Handler.java:102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Looper.loop(Looper.java:135)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.main(ActivityThread.java:5070)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Native Method)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Method.java:372)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
    10-12 10:53:37.572: E/AndroidRuntime(10605): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.capstone.medicinehealthguide.MenuListActivity.onCreate(MenuListActivity.java:24)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Activity.performCreate(Activity.java:5720)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2208)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    ... 10 more

Xml file

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.capstone.medicinehealthguide.MenuListActivity" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

</ListView>

I'm trying to create an application that has a list, and when you click on it, other actions will open

+4
source share
2 answers

In fact, you are using this incorrectly:

final ListView lv = (ListView) getListView().findViewById(R.id.listView1);

Here:

final ListView lv = (ListView) findViewById(R.id.listView1);

The problem is that in yours, you get the list view, and then try to get the list view from the list.

Try the option above to just get the list view from your content view.

+1
source

findByViewId . , onCreate onCreateView. IN onCreateView setContentView().

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MenuNames);

final ListView lv = (ListView) getListView().findViewById(R.id.listView1);

lv.setAdapter(adapter);

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

        if(position == 1) {
            //code specific to first list item    
            Intent myIntent = new Intent(v.getContext(), ConsultationActivity.class);
            startActivity(myIntent);
        }
}
0

All Articles