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

Android Studio中AlertDialog内启动Activity致应用崩溃问题求助

解决AlertDialog启动Activity崩溃的问题

看起来你遇到的崩溃大概率是几个常见的Android开发问题导致的,咱们一步步来排查和解决:

首先排查最容易遗漏的点:Activity未在Manifest注册

Android系统要求所有的Activity都必须在AndroidManifest.xml中声明,如果你没注册ChangeNameView,启动时必然会崩溃。赶紧检查你的Manifest文件,确保添加了这段代码:

<activity android:name=".ChangeNameView"
          android:theme="@style/AppTheme"/> <!-- 主题可以根据你的应用风格调整 -->

优化AlertDialog按钮的点击逻辑

你当前在「选择名称」按钮的点击事件里手动调用了dialogInterface.dismiss(),但实际上AlertDialog的按钮点击后会自动关闭对话框,手动重复调用可能会导致上下文引用异常。可以把这行代码去掉,简化逻辑:

alertDialog.setNegativeButton("选择名称", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 去掉手动dismiss,让系统自动处理对话框关闭
        startActivity(new Intent(NewMeasureScreen.this, ChangeNameView.class));
    }
});

关于「在AlertDialog内展示界面」的补充说明

你提到想在AlertDialog内展示screen_nome_existente的界面,但要注意:Activity是独立的页面组件,不能嵌入到Dialog中。如果你的需求是在弹窗内展示这个布局的内容,而不是跳转到新页面,那应该改用自定义Dialog来实现,而不是启动Activity:

alertDialog.setNegativeButton("选择名称", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        dialogInterface.dismiss(); // 先关闭原来的对话框
        // 创建自定义弹窗加载目标布局
        AlertDialog.Builder customDialogBuilder = new AlertDialog.Builder(NewMeasureScreen.this);
        View customLayout = getLayoutInflater().inflate(R.layout.screen_nome_existente, null);
        // 这里可以初始化customLayout里的控件,比如ListView、Button等
        customDialogBuilder.setView(customLayout);
        customDialogBuilder.show();
    }
});

按照上面的步骤调整后,应该就能解决崩溃问题,同时满足你的需求啦!

内容的提问来源于stack exchange,提问作者Tiago Ribeiro Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:21:23