Android 使用自定义对话框时,我的程序崩溃
我正在尝试创建自定义对话框,但遇到问题。当我按下显示对话框的按钮时,我的应用程序崩溃 这是我的密码:Android 使用自定义对话框时,我的程序崩溃,android,android-studio,Android,Android Studio,我正在尝试创建自定义对话框,但遇到问题。当我按下显示对话框的按钮时,我的应用程序崩溃 这是我的密码: public class Cartas extends AppCompatActivity { Dialog myDialog; Button senmacho; Button cerrar; @Override protected void onCreate(Bundle savedInstanceState) { super.onC
public class Cartas extends AppCompatActivity {
Dialog myDialog;
Button senmacho;
Button cerrar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cartas);
senmacho = (Button) findViewById(R.id.senmacho);
senmacho.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
senamacho();
}
});
}
public void senamacho(){
myDialog = new Dialog(Cartas.this);
myDialog.setContentView(R.layout.macho);
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
cerrar = (Button) findViewById(R.id.cerrar);
cerrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myDialog.cancel();
}
});
myDialog.show();
}
}
更改行
cerrar=(按钮)findviewbyd(R.id.cerrar)
intocerrar=(按钮)myDialog.findviewbyd(R.id.cerrar)代码>或进入cerrar=myDialog.findviewbyd(R.id.cerrar)代码>可能会解决此问题 有一个非常基本的错误。
您应该遵循下面的代码
而不是:此:
public void senamacho(){
myDialog = new Dialog(Cartas.this);
myDialog.setContentView(R.layout.macho);
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
cerrar = (Button) findViewById(R.id.cerrar);
cerrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myDialog.cancel();
}
});
myDialog.show();
}
使用这个
public void senamacho(){
myDialog = new Dialog(Cartas.this);
myDialog.setContentView(R.layout.macho);
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//modify the line bellow
cerrar = (Button) myDialog.findViewById(R.id.cerrar);
cerrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myDialog.cancel();
}
});
myDialog.show();
}
您好,请发布您的日志。在崩溃发生时从控制台添加输出将有所帮助。堆栈跟踪将显示崩溃发生在代码中的哪个位置代码>cerrar按钮在自定义对话框布局中使用时,会在活动布局中声明。因此,如果您的按钮位于R.layout.macho
中,只需将其更改为button cerrar=(button)myDialog.findViewById(R.id.cerrar)代码>post错误日志SSO、nullpointerexception,然后