2013-11-21 1 views
0

Я пытаюсь сделать это, когда я нажимаю кнопку, он добавляет то, что находится в моем текстовом редакторе, к моей таблице SQLite, но когда я нажимаю на нее, он просто падает. Я получаю ошибку onpause. Вот лог-кот.Ошибка приложения при попытке добавить элемент в базу данных SQLite (ошибка onPause())

11-20 20:06:32.076: E/AndroidRuntime(10548): FATAL EXCEPTION: main 
11-20 20:06:32.076: E/AndroidRuntime(10548): java.lang.RuntimeException: Unable to pause activity {com.oxpheen.tweetschedulerfree/com.oxpheen.tweetschedulerfree.ScheduleTweetDialog}: java.lang.NullPointerException 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3144) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3099) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3077) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.access$800(ActivityThread.java:153) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1264) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.os.Looper.loop(Looper.java:137) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.main(ActivityThread.java:5227) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at java.lang.reflect.Method.invokeNative(Native Method) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at java.lang.reflect.Method.invoke(Method.java:511) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at dalvik.system.NativeStart.main(Native Method) 
11-20 20:06:32.076: E/AndroidRuntime(10548): Caused by: java.lang.NullPointerException 
11-20 20:06:32.076: E/AndroidRuntime(10548): at com.oxpheen.tweetschedulerfree.ScheduleTweetDialog.saveState(ScheduleTweetDialog.java:266) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at com.oxpheen.tweetschedulerfree.ScheduleTweetDialog.onPause(ScheduleTweetDialog.java:262) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.Activity.performPause(Activity.java:5206) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1226) 
11-20 20:06:32.076: E/AndroidRuntime(10548): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3130) 
11-20 20:06:32.076: E/AndroidRuntime(10548): ... 13 more 

Вот мой метод OnPause

@Override 
    protected void onPause() { 
    super.onPause(); 
    saveState(); //Line 262 where it crashes 
    } 

И мой saveState метод

private void saveState() { 
    String category = (String) mCategory.getSelectedItem(); //Line 266 where it crashes 
    String summary = mTitleText.getText().toString(); 
    String description = mBodyText.getText().toString(); 

    if (description.length() == 0 && summary.length() == 0) { 
     return; 
    } 

    ContentValues values = new ContentValues(); 
    values.put (TodoTable.COLUMN_CATEGORY, category == null ? "" : category); 
    values.put(TodoTable.COLUMN_SUMMARY, summary); 
    values.put(TodoTable.COLUMN_DESCRIPTION, description); 

    if (todoUri == null) { 
     // New todo 
     todoUri = getContentResolver().insert(MyTodoContentProvider.CONTENT_URI, values); 
    } else { 
     // Update todo 
     getContentResolver().update(todoUri, values, null, null); 
    } 
    } 

Я действительно новичок в базах данных, а что нет, поэтому я прошу прощения, если это легко ошибка. Но если бы вы могли помочь мне, это было бы здорово. Огромное спасибо. Если вам нужен какой-либо другой код, просто скажите мне, что я отправлю немедленно!

+0

где определена mCategory? Где он инициализируется? – EJK

+0

общественный Spinner mCategory; mCategory = (Spinner) findViewById (R.id.category); for (int i = 0; i Fernando

+0

ОК, это определение. Вы инициализируете его в onCreate()? – EJK

ответ

1

Нулевой указатель связан с тем, что mCategory имеет значение NULL. На основе кода, который вы опубликовали, ваше представление не содержит Spinner с идентификатором категории. Это объясняет, почему getViewById (R.id.category) возвращает null.

 Смежные вопросы

  • Нет связанных вопросов^_^