2015-04-20 2 views
0

Я столкнулся со своей второй проблемой при использовании SQLite для создания активности входа/регистрации для моего приложения. Я следую онлайн-учебнику, я думаю, что все понимаю, и я следил за его действиями, он работал на него, но мое приложение вылетает из строя. Вот функция в моей базе данных:Как исправить java.lang.NullPointerException в моем SQLite login?

public Cursor getInformation(DatabaseOperations dop){ 
    SQLiteDatabase SQ = dop.getReadableDatabase(); 
    String[] columns = {TableData.TableInfo.USER_NAME, TableData.TableInfo.USER_PASS, TableData.TableInfo.USER_EMAIL}; 
    Cursor CR = SQ.query(TableData.TableInfo.TABLE_NAME, columns, null, null, null, null, null); 
    return CR; 
} 

Проблема возникает, как только я нажал Войти здесь код для кнопки:

public void SignInOnClick(View view){ 
    Bundle b = getIntent().getExtras(); 
    int status = b.getInt("status"); 
    if(status == 1){ 
     Toast.makeText(getBaseContext(),"Please wait...",Toast.LENGTH_LONG).show(); 
     email = Email.getText().toString(); 
     password = Password.getText().toString(); 
     DatabaseOperations DOP = new DatabaseOperations(CTX); 
     Cursor CR = DOP.getInformation(DOP); 
     CR.moveToFirst(); 
     boolean loginstatus = false; 
     String NAME = ""; 
     do 
     { 
       if(email.equals(CR.getString(2)) && (password.equals(CR.getString(1)))) 
       { 
        loginstatus = true; 
        NAME = CR.getString(0); 
       } 
     }while(CR.moveToNext()); 
     if(loginstatus) 
     { 
      Toast.makeText(getBaseContext(),"Login Successful \n Welcome"+NAME, Toast.LENGTH_LONG).show(); 
      finish(); 
     } 
     else 
     { 
      Toast.makeText(getBaseContext(), "Login Failed", Toast.LENGTH_LONG).show(); 
      finish(); 
     } 
    } 
} 

Ошибка гласит следующее согласно LogCat:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference 
+0

Добавить полный фрагмент журнала и связь учебника также – VicJordan

+0

Ссылки на учебник: https://www.youtube.com/watch?v=LsbYu-j6_TE –

+0

полный журнал отключен слишком долго для публикации, что-то конкретное, что я должен искать? –

ответ

0

Вы используете объект Bundle, не проверяя сначала недействительность. И вот почему ваше приложение рушится.

Попробуйте изменить свой код, например:

Bundle b = getIntent().getExtras(); 
int status = b != null ? b.getInt("status") : 1; 
if(status == 1){ 
+0

Только что попробовал, что теперь моя кнопка, кажется, не делать ничего, и это код ошибки я получаю: 04-20 01: 12: 00,527 3094-3094/com.example.wolfe_000.final_final_zeno D/InputEventConsistencyVerifier: KeyEvent: ACTION_UP, но клавиша не была нажата. in android.widget.EditText {1b2ec516 VFED..CL .F ...... 32,505-736,554 # 7f080043 app: id/editText2} 0: отправлено по адресу 11513512000000, KeyEvent {action = ACTION_UP, keyCode = KEYCODE_TAB, scanCode = 15, metaState = 0, flags = 0x8, repeatCount = 0, eventTime = 11513512, downTime = 11513384, deviceId = 0, source = 0x101} –

+0

можете ли вы опубликовать свой другой код? вы уже установили слушателя? –

+0

Я выбрал метод XML onClick, какой код вам нужен? :) –

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