添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在android studio中点击按钮时获得空指针异常

2 人不认可

我已经建立了数据库,并将复选框中的值带到数据库中。 但是当活动打开时,应用程序崩溃了,说明出现了空指针异常。

我已经提供了错误发生的代码和logcat中的错误信息。 有谁能回答这个问题呢?我现在不想重做这些代码,请大家提出建议,对其进行编辑。

The code:

   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)
    
5 个评论
检查在onclick方法之前是否对`savebtn`进行了查找,savebtn是正确的id还是错误的。
It is right. I double checked it.
你的findById是在onCreate()函数之前还是在onCreate()函数中?
请公布你的活动类和活动xml代码
savebtn 为空。你需要在问题中添加你定义和设置它的地方,如果有人能告诉你比这更有用的东西。此外,显示 statusCheck 是从哪里调用的也会有帮助。
android
android-studio
android-layout
ABid AK
ABid AK
发布于 2022-02-10
1 个回答
Fakhrul Siddiqei
Fakhrul Siddiqei
发布于 2022-02-10
已采纳
0 人赞同

你应该在之后调用这个函数。 还要检查你是否在创建时初始化了它。

 Button saveButton;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bmet_card);