Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NullPointerException with ListView and setAdapter

Tags:

android

I keep getting the following nullPointerException and I can't quite figure it out any help would be greatly appreciated. The program query() from DB and then use adapter to populate ListView.

   public class ViewListingsActivity extends Activity {
    SQLiteDatabase db;
    ListView listview;
    Button button;
    SimpleCursorAdapter adapter;
    private static final String TAG = DBHelper.class.getSimpleName();
    public static final String DB_ADDRESS = BaseColumns._ID;
    public static final String DB_DESCRIPTION = "Description";
    public static final String DB_URL = "URL";
    final String dbTable = "Realtor_SMS_Table";

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewlisting);
        listview = (ListView) findViewById(R.id.list);
        button = (Button) findViewById(R.id.button1);
        DBHelper dbhelper = new DBHelper(ViewListingsActivity.this);
        db = dbhelper.getWritableDatabase();

        Cursor cursor = db.query(dbTable, null, null, null, null, null, null);
        startManagingCursor(cursor);

        String[] from = new String[] { DB_ADDRESS, DB_DESCRIPTION, DB_URL };
        int[] to = new int[] { R.id.textlistaddress, R.id.textlistdescription,
                R.id.textlisturl };
        adapter = new SimpleCursorAdapter(this, R.layout.rowlist, cursor, from,
                to);
        listview.setAdapter(adapter);

    }
}

here is my stack trace

----- pid 764 at 2011-08-05 13:26:24 -----
Cmd line: com.RealtorSMS

DALVIK THREADS:
"main" prio=5 tid=3 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x40018e70
  | sysTid=764 nice=0 sched=0/0 handle=-1096475492
  at android.os.BinderProxy.transact(Native Method)
  at android.app.ActivityManagerProxy.handleApplicationError(ActivityManagerNative.java:2103)
  at com.android.internal.os.RuntimeInit.crash(RuntimeInit.java:302)
  at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:75)
  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:887)
  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:884)
  at dalvik.system.NativeStart.main(Native Method)

"Binder Thread #3" prio=5 tid=15 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x43594008
  | sysTid=771 nice=0 sched=0/0 handle=1505008
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #2" prio=5 tid=13 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x43590120
  | sysTid=770 nice=0 sched=0/0 handle=1487504
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=11 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x4358e9b0
  | sysTid=769 nice=0 sched=0/0 handle=1396928
  at dalvik.system.NativeStart.run(Native Method)

"JDWP" daemon prio=5 tid=9 VMWAIT
  | group="system" sCount=1 dsCount=0 s=0 obj=0x4358d2a0
  | sysTid=768 nice=0 sched=0/0 handle=1493656
  at dalvik.system.NativeStart.run(Native Method)

"Signal Catcher" daemon prio=5 tid=7 RUNNABLE
  | group="system" sCount=0 dsCount=0 s=0 obj=0x4358d1e8
  | sysTid=767 nice=0 sched=0/0 handle=1490832
  at dalvik.system.NativeStart.run(Native Method)

"HeapWorker" daemon prio=5 tid=5 VMWAIT
  | group="system" sCount=1 dsCount=0 s=0 obj=0x427d1928
  | sysTid=765 nice=0 sched=0/0 handle=1488192
  at dalvik.system.NativeStart.run(Native Method)

----- end 764 -----

Here are the two xmls

rowlist.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlistaddress"></TextView>
    <TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlistdescription"></TextView>
    <TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlisturl"></TextView>

</LinearLayout>

viewlisting.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent" android:background="@drawable/realtorbackground"
    android:weightSum="1">
    <TextView android:layout_weight="0.08" android:layout_height="wrap_content"
        android:layout_width="match_parent" android:id="@+id/textViewtitleview"
        android:gravity="center" android:textSize="30dp" android:text="Current Listings"></TextView>
    <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/list"></ListView>
    <Button android:id="@+id/button1" android:layout_width="match_parent"
        android:layout_height="wrap_content" android:text="Delete Listing"></Button>

</LinearLayout>

here is the logcat:

08-05 13:26:24.077: ERROR/AndroidRuntime(764): Uncaught handler: thread main exiting due to uncaught exception
08-05 13:26:24.087: ERROR/AndroidRuntime(764): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.RealtorSMS/com.RealtorSMS.ViewListingsActivity}: java.lang.NullPointerException
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread.access$1800(ActivityThread.java:112)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.os.Looper.loop(Looper.java:123)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread.main(ActivityThread.java:3948)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at java.lang.reflect.Method.invoke(Method.java:521)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at dalvik.system.NativeStart.main(Native Method)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): Caused by: java.lang.NullPointerException
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at com.RealtorSMS.ViewListingsActivity.onCreate(ViewListingsActivity.java:39)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
08-05 13:26:24.087: ERROR/AndroidRuntime(764):     ... 11 more
like image 312
Ryan Avatar asked Aug 05 '11 18:08

Ryan


2 Answers

check viewlisting.xml, It does not contain ListView with id R.id.list

like image 148
logcat Avatar answered Nov 15 '22 05:11

logcat


I guess there is something wrong with the compiler or Eclipse. I ran into this problem tonight as well. But after I renamed the ListView ID, and the XML file gets re-compiled, then it works!

I found sometimes, the changes in the XML file is not automatically rebuilt. And sometimes, the build result of the XML file seems lost.

like image 42
Sean King Avatar answered Nov 15 '22 04:11

Sean King