Java 如何将主题设置为ProgressDialog?
我想设置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.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();