我創建了一個從SQLite獲取數據並顯示在文本視圖中的方法,但是當我按下按鈕顯示應用程序崩潰時。驗證碼:從SQLite獲取數據
public void ViewData(){
btnControler.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor data = peopleDB.showData();
if (data.getCount() == 0) {
display("","");
return;
}
StringBuffer buffer = new StringBuffer();
StringBuffer buffer2 = new StringBuffer();
while (data.moveToNext()) {
display(buffer.append("Name:\t " + data.getString(1) + "\n").toString(),buffer2.append("Email:\t " + data.getString(2) + "\n").toString());
}
}
});
}
public void display(String name, String email){
TVusername.append(name);
rphone.append(email);
}
錯誤是任命爲第五行Cursor data = peopleDB.showData();
05-25 23:37:03.439 916-916/info.devexchanges.googlelocation E/AndroidRuntime: FATAL EXCEPTION: main
Process: info.devexchanges.googlelocation, PID: 916
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor info.devexchanges.googlelocation.DatabaseHelper.showData()' on a null object reference
at info.devexchanges.googlelocation.LocationActivity$5.onClick(LocationActivity.java:473)
at android.view.View.performClick(View.java:5184)
at android.view.View$PerformClick.run(View.java:20910)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
顯示整個堆棧跟蹤 –
Silvia Hisham我已經編輯了整個堆棧跟蹤的問題。 – Meli
你初始化了peopleDB嗎? –