我已經創建了資料庫并將復選框中的值提取到資料庫中。但是當活動打開應用程式崩潰,說明空指標例外。
我已經提供了錯誤來自的代碼以及來自 logcat 的錯誤訊息任何人都有答案。我現在不想重做代碼,請在此提出修改建議。
代碼:
public void statusCheck(){
savebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqLiteDatabase = feedDB.getWritableDatabase();
ContentValues contentValues = new ContentValues();
if(morning.isChecked()){
contentValues.put(COLUMN_FEED_1,"Feeding in morning");
}
if(lunch.isChecked()){
contentValues.put(COLUMN_FEED_2,"Feeding on Lunch time");
}
if(evening.isChecked()){
contentValues.put(COLUMN_FEED_3,"Feeding in evening");
}
if(dinner.isChecked()){
contentValues.put(COLUMN_FEED_4,"Feeding in dinner");
}
Long rec = sqLiteDatabase.insert("Feed",null,contentValues);
if(rec != null){
Toast.makeText(Feedone.this, "Data is saved", Toast.LENGTH_SHORT).show();
}
}
});
}
來自 Logcat 的錯誤:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null
object reference
at com.kidcave.pediacare.Feedone.statusCheck(Feedone.java:59)
uj5u.com熱心網友回復:
您應該在之后呼叫此函式。還要檢查您是否在創建之前對其進行了初始化。
Button saveButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bmet_card);
saveButton = findViewById(R.id.save_button);
//here you can call the function
希望通過在 setContentView 之后初始化并在初始化視圖后從 onCreate 呼叫它。會解決的。
還要檢查你是否膨脹了正確的布局。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/426322.html
