我的应用程序从互联网中获取一些html代码,完成后,将其显示在设备屏幕上。由于这需要大约3-4秒的时间,因此在这段时间屏幕保持黑屏,我想使用进度对话框。这是我的代码:Android进度对话框
package com.nextlogic.golfnews;
// ALL THE IMPORTS ....
public class Activity1 extends Activity {
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
progressDialog = ProgressDialog.show(Activity1.this, "", "Loading...");
new Thread()
{
public void run()
{
try
{
sleep(2000);
// HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME
}
catch (Exception e)
{
Log.e("tag",e.getMessage());
}
// dismiss the progressdialog
progressDialog.dismiss();
}
}.start();
该程序的工作原理,但它不再显示任何东西。我在logcat有一个错误:
Only the original thread that created a view hierarchy can touch its views.
你能帮我吗?提前致谢。
给出的答案是正确的,但我想补充一些东西。 ProgressDialogs有两种样式:STYLE_SPINNER(默认)和STYLE_HORIZONTAL。根据[ui dialogs](http://developer.android.com/guide/topics/ui/dialogs.html),我们应该遵循[进度和活动设计指南](http://developer.android.com /design/building-blocks/progress.html)并使用STYLE_HORIZONTAL(如果相关且可能的话)。在这个问题上,我发现[本教程](http://www.pavanh.com/2013/04/android-progress-dialog-example.html)非常有用。现在你可以选择你想要的ProgressDialog风格了... –