Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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_Themes_Progress Bar_Progressdialog - Fatal编程技术网

Java 如何将主题设置为ProgressDialog?

Java 如何将主题设置为ProgressDialog?,java,android,themes,progress-bar,progressdialog,Java,Android,Themes,Progress Bar,Progressdialog,我想设置progressDialog的主题。要创建它,我使用以下代码: progressDialog = ProgressDialog.show(this, "Please Wait", "Loading dictionary file....", true, false); 我不能只是写 progressDialog = new ProgressDialog(...); progressDialog.(do_sth_with_dialog); progressDialog.show(...)

我想设置progressDialog的主题。要创建它,我使用以下代码:

progressDialog = ProgressDialog.show(this, "Please Wait", "Loading dictionary file....", true, false);
我不能只是写

progressDialog = new ProgressDialog(...);
progressDialog.(do_sth_with_dialog);
progressDialog.show(...)
因为show()方法是静态的,我得到了编译器警告。 有没有办法使用可用的常量,比如

progressDialog.THEME_HOLO_DARK 
要设置对话框主题

我还想更改对话框背景并使角落变圆(我不想更改progressDialog中的progressBar的任何内容。这里有许多教程,但它们通常描述如何创建扩展progressDialog类的新类

是否有更简单的方法来设置progressDialog的主题和背景色?

如果我不能使用progressDialog.THEME\u HOLO\u DARK之类的常量,为什么我可以访问它们?

您不能膨胀progressDialog

可以做的是,在执行异步任务时,可以显示自定义对话框,可以通过继承dialog类来创建自定义对话框

另请参见
ProgressDialog.show()
是静态方法,因此您无法获得可以设置属性的
ProgressDialog
的类实例

要获取
ProgressDialog
实例:

// create a ProgressDialog instance, with a specified theme:    
ProgressDialog dialog = new ProgressDialog(mContext, ProgressDialog.THEME_HOLO_DARK);
// set indeterminate style
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// set title and message
dialog.setTitle("Please wait");
dialog.setMessage("Loading dictionary file...");
// and show it
dialog.show();
2016年8月编辑: 关于不推荐使用的主题的注释,您也可以使用styles.xml并从基本主题继承,例如:

<style name="MyProgressDialog" parent="Theme.AppCompat.Dialog">
</style>

并让您的全局主题/样式提供样式。

对不起,我现在正在工作。无法提供全部细节。但这里是答案

ProgressDialog progressDialog;

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){
   progressDialog = new ProgressDialog(new ContextThemeWrapper(context, android.R.style.Theme_Holo_Light_Dialog));
}else{
   progressDialog = new ProgressDialog(context);
}

progressDialog.setMessage("Loading....");
progressDialog.show();

你不能膨胀进度对话框用户界面,你可以做的是在执行异步任务时,你可以显示自定义对话框Adil Mughal你能在回答中写下我如何使自定义进度对话框只修改主题、背景和角点吗?我不想触摸进度条…@Marek:你不能膨胀进度对话框的布局(上面是Adil Mughal提到的)您需要使用自定义对话框(而不是自定义progree对话框)。您可以创建一个简单的对话框并根据需要进行自定义。主题现在已弃用。我们还可以使用什么?感谢ContextThemeWrapper:)
new ProgressDialog(mContext);
ProgressDialog progressDialog;

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){
   progressDialog = new ProgressDialog(new ContextThemeWrapper(context, android.R.style.Theme_Holo_Light_Dialog));
}else{
   progressDialog = new ProgressDialog(context);
}

progressDialog.setMessage("Loading....");
progressDialog.show();