이벤트에 대한 정보를 보여주는 개인 SQLite DB에서 채워지는 목록보기가 있습니다. 이벤트의 설명 페이지에서 체크 박스를 사용하여이 이벤트를 "즐겨 찾기"하는 방법을 만들려고합니다. 이 코드는 사용자가 확인란을 선택하고 onPause()를 시작하면 데이터베이스를 업데이트하려고 시도합니다.SQLite 데이터베이스 업데이트 문제
데이터베이스에서 행을 업데이트하는 몇 가지 예를 찾았지만 시도 할 때마다 항상 방해가되는 것처럼 보입니다. NullPointerException가 발생합니다.
이 문제를 해결하는 데 도움이되는 다른 코드가 있는지 알려주십시오. DataBaseHelper
public void updateRow(long rowId, Integer mySchedule) {
if(mySchedule != null){
ContentValues args = new ContentValues();
args.put("mySchedule", mySchedule);
myDataBase.update(DATABASE_PANELS_TABLE, args, "_id=" + rowId, null);
}
}
에서에 updateRow 코드 여기
@Override
protected void onPause() {
super.onPause();
DataBaseHelper myDbHelper = new DataBaseHelper(this);
if (panelCheckBox.isChecked()) {
int mySchedule = 1;
myDbHelper.updateRow(mRowId, mySchedule);
}
된다 : 여기
는 사용자들이 체크 박스를 선택했는지 확인하기 위해 설명 활동에서 멀리 이동할 때 내가 전화 코드입니다여기에 로그 캣에서 오류입니다 : 그래서
ERROR/AndroidRuntime(689): Uncaught handler: thread main exiting due to uncaught exception
ERROR/AndroidRuntime(689): java.lang.RuntimeException: Unable to pause activity {com.tagrost.AndroidConventionApp/com.tagrost.AndroidConventionApp.PanelDescActivity}: java.lang.NullPointerException
ERROR/AndroidRuntime(689): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3162)
ERROR/AndroidRuntime(689): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3119)
ERROR/AndroidRuntime(689): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3102)
ERROR/AndroidRuntime(689): at android.app.ActivityThread.access$2400(ActivityThread.java:119)
ERROR/AndroidRuntime(689): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1874)
ERROR/AndroidRuntime(689): at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(689): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(689): at android.app.ActivityThread.main(ActivityThread.java:4363)
ERROR/AndroidRuntime(689): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(689): at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(689): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860
ERROR/AndroidRuntime(689): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
ERROR/AndroidRuntime(689): at dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(689): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(689): at com.tagrost.AndroidConventionApp.DataBaseHelper.updateRow(DataBaseHelper.java:198)
ERROR/AndroidRuntime(689): at com.tagrost.AndroidConventionApp.PanelDescActivity.onPause(PanelDescActivity.java:67)
ERROR/AndroidRuntime(689): at android.app.Activity.performPause(Activity.java:3782)
ERROR/AndroidRuntime(689): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1190)
ERROR/AndroidRuntime(689): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3149)
'ERROR/AndroidRuntime (689) : com.tagrost.AndroidConventionApp.DataBaseHelper.updateRow에서 (DataBaseHelper.java:198)'어떤 행이 198입니까? 문제가있는 곳이어야합니다. –
myDataBase.update (DATABASE_PANELS_TABLE, args, "_id ="+ rowId, null); – Tag
큰 문제는 데이터베이스 업데이트가 onPause와 관련이없는 이유는 무엇입니까? 활동을 열고 영구적으로두면 데이터베이스를 엽니 다. 체크 박스를 클릭하고 데이터베이스를 완료하면 데이터베이스를 업데이트하십시오. onPause를 사용하여 다시 그리기를 강요하려고합니까? – jcwenger