自定义进度对话框未显示在对话框片段中
Custom progress dialog not showing in dialog fragment
无法在对话框片段上看到自定义进度对话框
自定义进度对话框在 Activity 和 Fragment 中有效,但当我们尝试在 Dialog Fragment 中显示自定义进度时,加载程序未显示。
这是我的自定义对话框代码。
/**
* A simple {@link Fragment} subclass.
*/
public class CustomAlertDialogFragment extends Dialog {
/**
* Instantiates a new Custom alert dialog fragment.
*
* @param context the context
* @param text the text
*/
public CustomAlertDialogFragment(Context context, String text) {
super(context, android.R.style.Theme_Holo_Dialog_NoActionBar);
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ProgressBar v = new ProgressBar(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(v);
setCancelable(false);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
}
}
我显示加载程序的代码是
/**
* Loading bar.
*
* @param enable the enable
*/
public void loadingBar(boolean enable) {
if (enable) {
if (progressDialog == null) {
progressDialog = new CustomAlertDialogFragment(getActivity(), "");
}
if (!progressDialog.isShowing())
progressDialog.show();
} else {
dismissProgressBar();
}
}
/**
* Dismiss progress bar.
*/
public void dismissProgressBar() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
我将加载程序称为
loadingBar(true);
File source = new File("/mnt/extSdCard/Audio");
File dest = new File("/mnt/UsbDriveA/Dokita");
copyDirectory(source, dest);
loadingBar(false);
也许你是 运行 长 运行 任务(应该在后台完成)在线程中或使用 AsyncTask
在您的应用中实施以下代码
Thread thread = new Thread() {
@Override
public void run() {
loadingBar(true);
File source = new File("/mnt/extSdCard/Audio"); // source of file
File dest = new File("/mnt/UsbDriveA/Dokita"); // destination of file
copyDirectory(source, dest);
loadingBar(false);
}
};
copyDirectory(source, dest);
thread.start();
无法在对话框片段上看到自定义进度对话框
自定义进度对话框在 Activity 和 Fragment 中有效,但当我们尝试在 Dialog Fragment 中显示自定义进度时,加载程序未显示。
这是我的自定义对话框代码。
/**
* A simple {@link Fragment} subclass.
*/
public class CustomAlertDialogFragment extends Dialog {
/**
* Instantiates a new Custom alert dialog fragment.
*
* @param context the context
* @param text the text
*/
public CustomAlertDialogFragment(Context context, String text) {
super(context, android.R.style.Theme_Holo_Dialog_NoActionBar);
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ProgressBar v = new ProgressBar(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(v);
setCancelable(false);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
}
}
我显示加载程序的代码是
/**
* Loading bar.
*
* @param enable the enable
*/
public void loadingBar(boolean enable) {
if (enable) {
if (progressDialog == null) {
progressDialog = new CustomAlertDialogFragment(getActivity(), "");
}
if (!progressDialog.isShowing())
progressDialog.show();
} else {
dismissProgressBar();
}
}
/**
* Dismiss progress bar.
*/
public void dismissProgressBar() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
我将加载程序称为
loadingBar(true);
File source = new File("/mnt/extSdCard/Audio");
File dest = new File("/mnt/UsbDriveA/Dokita");
copyDirectory(source, dest);
loadingBar(false);
也许你是 运行 长 运行 任务(应该在后台完成)在线程中或使用 AsyncTask
在您的应用中实施以下代码
Thread thread = new Thread() {
@Override
public void run() {
loadingBar(true);
File source = new File("/mnt/extSdCard/Audio"); // source of file
File dest = new File("/mnt/UsbDriveA/Dokita"); // destination of file
copyDirectory(source, dest);
loadingBar(false);
}
};
copyDirectory(source, dest);
thread.start();