我在代码中将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();
}
}
我能做错什么呢?我已经在代码块的不同位置尝试了方法调用,但没有得到解决。
发布于 2019-12-23 10:23:20
setInverseBackgroundForced (boolean useInverseBackground)在Android API level 23 (Android 6.0棉花糖)中已弃用。
此标志仅用于预材料主题。相反,应使用警告对话框主题上的指定窗口背景。
代码是这样的!
AlertDialog dialog = new AlertDialog.Builder(BaseActivity.this, R.style.Dark2).create();
dialog.getWindow().setBackgroundDrawableResource(android.R.color.background_dark);
发布于 2013-07-28 06:37:33
使用扩展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()
。
发布于 2016-09-09 15:05:05
我今天也面临着同样的问题。就目前的情况而言,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);
希望这能有所帮助!
https://stackoverflow.com/questions/4333154
复制相似问题