Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android builder.setInverseBackgroundForced(true)不工作_Android_Background_Android Alertdialog - Fatal编程技术网

Android builder.setInverseBackgroundForced(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"

我在代码中将inversebackgroundforced设置为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();
     }
}

我可能做错了什么?我在代码块的不同位置尝试了方法调用,但没有解决问题。

使用自定义对话框类扩展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);