Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Java 如何更新ProgressDialog片段_Java_Android_Android Fragments_Progressdialog - Fatal编程技术网

Java 如何更新ProgressDialog片段

Java 如何更新ProgressDialog片段,java,android,android-fragments,progressdialog,Java,Android,Android Fragments,Progressdialog,我需要从AsyncTask内部更新进度对话框片段。我知道如何使用旧的ProgressDialog,但现在这种显示对话框的方式已被弃用,我正在尝试对片段执行同样的操作 这是片段代码: public static class CustomProgressDialogFragment extends SherlockDialogFragment { static CustomProgressDialogFragment newInstance(Object... params

我需要从
AsyncTask
内部更新进度对话框片段。我知道如何使用旧的
ProgressDialog
,但现在这种显示对话框的方式已被弃用,我正在尝试对片段执行同样的操作

这是片段代码:

    public static class CustomProgressDialogFragment extends SherlockDialogFragment {

        static CustomProgressDialogFragment newInstance(Object... params){
            CustomProgressDialogFragment df = new CustomProgressDialogFragment();
            Bundle bundle = new Bundle();

            // Populate bundle with params (not shown)

            df.setArguments(bundle);
            return df;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            this.setCancelable(false);
            int style = DialogFragment.STYLE_NORMAL, theme = 0;
            setStyle(style,theme);
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Bundle bundle = this.getArguments();

            ProgressDialog dialog = new ProgressDialog(getActivity());

            // Get params from bundle and customize dialog accordingly (not shown)

            dialog.setCancelable(false);
            dialog.setIndeterminate(false);
            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

            return dialog;
        }
    }
这就是我所展示的:

    FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction();       
    CustomProgressDialogFragment dialogFragment = CustomProgressDialogFragment.newInstance(<My params here>);
    ft.disallowAddToBackStack();
    ft.add(dialogFragment, stringSet.tag);      
    ft.commitAllowingStateLoss();
FragmentTransaction ft=this.getSupportFragmentManager().beginTransaction();
CustomProgressDialogFragment dialogFragment=CustomProgressDialogFragment.newInstance();
ft.不允许WADDTOBACKSTACK();
ft.add(dialogFragment,stringSet.tag);
ft.佣金列报损失();
现在我需要通过AsyncTask中的对话框调用
incrementProgressBy
。有没有办法从FragmentManager中检索底层对话框?这样做的正确方式是什么?(如果重新创建对话框,我不想泄漏引用)


提前谢谢

这可以通过调用来实现。使用
FragmentManager.findFragmentByTag
,可以像往常一样检索对话框fragment