Android Studio自定义布局异常:点击按钮应用崩溃求助
问题排查与修复
核心崩溃原因
你代码里的AlertDialog.Builder builder只做了变量声明,没有初始化实例,点击按钮调用builder.setTitle()时会触发NullPointerException(空指针异常),这就是应用崩溃的直接原因。
修复步骤
- 在
onCreate方法里,给builder完成初始化:
builder = new AlertDialog.Builder(this);
- 额外优化(可选):关闭对话框时用
dismiss()比cancel()更符合常规逻辑,不过这不是崩溃原因;布局填充时也可以指定父容器参数,更符合Android布局规范。
修复后的完整代码
package com.example.test_practice_itemselection; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button btn; AlertDialog.Builder builder; LayoutInflater layout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = findViewById(R.id.button); layout = getLayoutInflater(); // 初始化AlertDialog.Builder实例 builder = new AlertDialog.Builder(this); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { View customLayout = layout.inflate(R.layout.my_layout, null); builder.setTitle("This is a custom layout") .setView(customLayout) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); } }).create().show(); } }); } }
额外检查点
确保my_layout.xml布局文件存在且无语法错误:比如根布局是否合法、控件ID是否正确,这也是自定义布局可能不显示的潜在原因。
内容的提问来源于stack exchange,提问作者MMd.NrC
相关产品推荐
相关产品推荐

