如何在DialogFragment之上打开ProgressDialog?

fel*_*cao 8 android progressdialog android-dialogfragment

我有一个带有按钮的Android活动/布局.当我单击此按钮时,它会打开一个带有2个微调器的DialogFragment.当DialogFragment出现时,我需要使用Web服务返回的项填充这两个微调器.因此,在等待服务返回时,我想在我刚刚打开的DialogFragment上显示ProgressDialog.

问题是我似乎无法将ProgressDialog置于DialogFragment之上.我可以看到ProgressDialog显示在DialogFragment后面,是否可以将ProgressDialog显示在其他所有内容上?

我的代码是这样的:

public class RegionalFragment extends DialogFragment {

    private View view;
    private Activity activity;
    private Spinner spinner1;
    private Spinner spinner2;
    private ProgressDialog progressDialog;

    public RegionalFragment(Activity activity) {
        this.activity = activity;
        LayoutInflater inflater = activity.getLayoutInflater();
        view = inflater.inflate(R.layout.spinner_selection, null);
        this.progressDialog = new ProgressDialog(activity);
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder =
            new AlertDialog.Builder(activity)
                    .setTitle(R.string.title)
                    .setView(view)
                    .setPositiveButton(R.string.ok, new MyListener(activity))
                    .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            getDialog().cancel();
                        }
                    });

        progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(1));
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progressDialog.setCancelable(false);
        progressDialog.setIndeterminate(true);
        progressDialog.setMessage("Please wait...");
        progressDialog.show();

        invokeAsyncWebService();

    return builder.create();
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jua*_*tés 3

显然,这是一个广泛抱怨的主题ProgressDialog,我建议您尝试使用构建器创建的普通对话框,其布局(由您制作的自定义布局)包括进度条或加载或您需要的任何内容。这应该可以解决你的问题。