You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Java程序使用AlertDialog时应用闪退求助

问题原因与修复方案

你的应用闪退是因为空指针异常(NullPointerException),核心问题出在TextView t1=findViewById(R.id.t);这行代码的位置:

在Activity类中直接声明并初始化成员变量t1时,Activity还未执行setContentView方法,布局文件还没加载到内存中,findViewById找不到对应的控件,会返回null。后续点击对话框按钮时调用t1.setText(),对null对象执行方法就会触发空指针,导致应用闪退。

修复后的代码

package com.example.alertdialogbox;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AlertDialog;

import android.os.Bundle;
import android.content.DialogInterface;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView t1; // 仅声明变量,不立即初始化

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = findViewById(R.id.t); // 布局加载完成后再获取控件实例

        AlertDialog.Builder b1=new AlertDialog.Builder(this);
        b1.setTitle("Alert Dialog");
        b1.setMessage("Do you want to continue?");
        b1.setCancelable(false);
        b1.setPositiveButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                t1.setText("Clicked YES");
            }
        });
        b1.setNegativeButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                t1.setText("Clicked NO");
            }
        });
        b1.setNeutralButton("CANCEL", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                t1.setText("Clicked CANCEL");
            }
        });
        AlertDialog d=b1.create();
        d.show();
    }
}

关键说明

  • setContentView(R.layout.activity_main)的作用是将布局文件加载到Activity的内存中,只有执行完这一步,findViewById才能找到布局里的控件。
  • 所有需要获取布局控件的代码,都必须放在setContentView之后执行,避免出现空指针异常。

内容的提问来源于stack exchange,提问作者skullXcalibre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:55:34