我正在尝试在Fragment中的onCreateView()中创建一个AlertDialog。这是我正在使用的代码:
AlertDialog.Builder builder = new AlertDialog.Builder(getContext()));
builder.setTitle("blah blah blah");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//do something
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
getActivity().onBackPressed();
}
});
builder.create().show();
但无论何时执行,我都会得到一个完全白色的对话框,其中没有任何内容可见。如果我点击框周围,我最终会找到正面按钮的位置,因为setPositiveButton的OnClickListener中的代码会被执行。这是一个截图:
正如你所看到的,我的应用程序的其余部分都在后台,我留下了一个无用的对话框。我试过改变主题,但这没有任何区别。我似乎无法找到任何有这个问题的人,所以非常感谢任何关于为什么会发生这种情况的信息!
答案 0 :(得分:1)
试试这个
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertStyle);
添加Style.xml文件
<style name="AlertStyle" parent="Theme.AppCompat.Light.Dialog">
<item name="android:colorAccent">#f3f3f3</item>
<item name="android:textColor">#f3f3f3</item>
<item name="android:textColorPrimary">#f3f3f3</item>
</style>
答案 1 :(得分:0)
从create()
中删除builder.create().show()
方法
builder.show();
答案 2 :(得分:0)
试用所有版本
AlertDialog.Builder builder;
if(Build.VERSION.SDK_INT >= 21)
builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Light_Dialog_Alert);
else
builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle("title");
builder.setMessage("Message");
builder.create().show();