我的代码setInverseBackgroundForced设置为true,但它似乎不起作用。代码在深色背景上生成白色文本。
这是我的构建器代码:
public class test {
private void createMyLocationDisabledAlert() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setInverseBackgroundForced(true)
.setMessage(
"my message")
.setCancelable(false)
.setPositiveButton("Options",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
showOptions();
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
我可能做错了什么?我已经在代码块的不同位置尝试了方法调用,但没有解决。
答案 0 :(得分:2)
setInverseBackgroundForced(布尔值useInverseBackground)在Android API级别23(Android 6.0棉花糖)中已弃用。
此标志仅用于材料前主题。而是使用警报对话框主题指定窗口背景。
代码就是这样!
AlertDialog dialog = new AlertDialog.Builder(BaseActivity.this, R.style.Dark2).create();
dialog.getWindow().setBackgroundDrawableResource(android.R.color.background_dark);
答案 1 :(得分:0)
使用自定义对话框类扩展DialogFragment并使用它来显示AlertDialog。
示例:
public class CustomAlertDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setInverseBackgroundForced(true)
.setMessage("my message")
.setCancelable(false)
.setPositiveButton(
"Options",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
showOptions();
}
});
builder.setNegativeButton(
"Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
return alert;
}
}
public class test {
private void createMyLocationDisabledAlert() {
new CustomAlertDialog().show(getSupportFragmentManager(), Constants.FragmentTagSearch);
}
}
注意:我使用支持库来兼容,因此使用了getSupportFragmentManager()
。
答案 2 :(得分:0)
我今天也面临同样的问题。就目前的情况而言,Android文档说不推荐使用setInverseBackgroundForced()
API,并建议开发人员使用警告对话框主题指定窗口背景。
注意:理想情况下,弃用不应使功能停止工作。
那就是说,我不想调查为什么它今天不起作用,而是转移我的注意力,让每个Android文档更清晰,更推荐。它类似于下面的代码:
private final int DIALOG_THEME_STYLE = android.support.v7.appcompat.R.style.Base_Theme_AppCompat_Dialog_MinWidth;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, DIALOG_THEME_STYLE);
希望有所帮助!