我正在创建一个带有两个按钮的简单DialogFragment
,当您选择两个选项中的任何一个时,只能显示一个Toast
。当您在活动上按一个特定按钮时,将显示此对话框。
由于某种原因,代码没有显示任何错误,但是当我单击按钮时,应用程序崩溃了。
我该如何解决?
我首先尝试为Dialog
做一个自定义XML文件和java文件,但是我也无法使它工作。 Google's documentation
和其他教程也没有帮助
公共类Config扩展了AppCompatActivity {
Button btncanc;
Button btnreestab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_config);
btncanc = (Button) findViewById(R.id.btncnacelset);
btnreestab = (Button) findViewById(R.id.btnrest);
btncanc.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(getApplicationContext(),"Operación cancelada",Toast.LENGTH_SHORT);
toast.show();
Config.this.finish();
}
});
btnreestab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setMessage("Hola");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast toast = Toast.makeText(getApplicationContext(),"hola",Toast.LENGTH_SHORT);
toast.show();
}
});
builder.setNegativeButton("cancela", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast toast = Toast.makeText(getApplicationContext(),"adios",Toast.LENGTH_SHORT);
toast.show();
}
});
AlertDialog dialog = builder.create(); dialog.show();
}
});
}
}
答案 0 :(得分:0)
您可以从上下文中复制样式。使用以下命令初始化警报对话框。
new AlertDialog.Builder(Config.this)
通过其他方式,您可以在style.xml中定义自定义样式,例如
<style name="myDialog" parent="Theme.AppCompat.Dialog">
<item name="android:windowNoTitle">true</item>
...
</style
并使用
初始化警报对话框AlertDialog.Builder dialog = new AlertDialog.Builder(getApplicationContext(), R.style.myDialog);
此崩溃的原因是AppCompatActivity
具有Theme.AppCompat,因此您应该使用此主题。
检查该崩溃。
您需要与此同时使用Theme.AppCompat主题(或后代) 活动