开发者

Can't show data on spinner? throws Null Pointer Exception

can anyone tell wats wrong in this code... I put code bellow.

mySQLiteAdapter = new SQLiteAdapter(this);
    cursor = mySQLiteAdapter.displayCategory();
    startManagingCursor(cursor);

    String[] from = new String[] { SQLiteAdapter.KEY_ID, SQLiteAdapter.KEY_CATEGORY };

    int[] to = new int[] { android.R.id.text1 };

    mCategory = (Spinner) findViewById(R.id.choose_category);
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            android.R.layout.simple_spinner_item, cursor, from, to);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mCategory.setAdapter(adapter);

MyAdapter class having following code

public Cursor displayCategory() {
        String[] columns = new String[]{KEY_ID, KEY_CATEGORY};          
        Cursor cursor = sqLiteDatabase.query(MYCATEGORY_TABLE, col开发者_JS百科umns, 
                null, null, null, null, null);

        return cursor;

Null pointer Exception. How to avoid it. This is the error on log cat

 09-09 15:49:16.535: ERROR/AndroidRuntime(6526): Uncaught handler: thread main exiting  due to uncaught exception
09-09 15:49:16.545: ERROR/AndroidRuntime(6526): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.mpt.receiptor/com.android.mpt.receiptor.SearchReceipt}: java.lang.NullPointerException
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.os.Looper.loop(Looper.java:123)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread.main(ActivityThread.java:4363)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at java.lang.reflect.Method.invokeNative(Native Method)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at java.lang.reflect.Method.invoke(Method.java:521)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at dalvik.system.NativeStart.main(Native Method)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526): Caused by: java.lang.NullPointerException
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at com.android.mpt.receiptor.SQLiteAdapter.displayCategory(SQLiteAdapter.java:135)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at com.android.mpt.receiptor.SearchReceipt.onCreate(SearchReceipt.java:96)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-09 15:49:16.545: ERROR/AndroidRuntime(6526):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)

Pls someone help me.

Thanks in advance


It looks like in this line:

Cursor cursor = sqLiteDatabase.query(MYCATEGORY_TABLE, columns,  
            null, null, null, null, null); 

that sqLiteDatabase is null - make sure it is initialised in your onCreate method.


why cant you put a breakpoint in the displayCategory() method? null pointer exceptions are quite easy to find.As Cjk has pointed out, sqlitedatabase is unitialised. Debugging will help you find and solve issues before you lose much of your time..

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜