Android builder.setInverseBackgroundForced(true)不工作
我在代码中将inversebackgroundforced设置为true,但它似乎不起作用。该代码在深色背景上生成白色文本 以下是我的生成器代码:Android builder.setInverseBackgroundForced(true)不工作,android,background,android-alertdialog,Android,Background,Android Alertdialog,我在代码中将inversebackgroundforced设置为true,但它似乎不起作用。该代码在深色背景上生成白色文本 以下是我的生成器代码: public class test { private void createMyLocationDisabledAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title"
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();
}
}
我可能做错了什么?我在代码块的不同位置尝试了方法调用,但没有解决问题。使用自定义对话框类扩展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()
我今天也面临同样的问题。就目前的情况来看,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);
希望有帮助 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);