我正在创建一个带有两个按钮的简单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();
}
});
}
}
您可以从上下文中复制样式。使警报对话框初始化。
new AlertDialog.Builder(Config.this)
通过其他方式,您可以在样式中定义自定义样式.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 主题(或后代(与此一起使用 活动