Ứng dụng của tôi tìm nạp một số mã html từ internet và khi hoàn tất, hiển thị nó trên màn hình thiết bị. Vì phải mất khoảng 3-4 giây để làm điều đó, trong thời gian này màn hình vẫn đen, tôi muốn sử dụng hộp thoại tiến trình. Đây là mã của tôi:Hộp thoại tiến trình 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();
Chương trình hoạt động nhưng không hiển thị gì nữa. Tôi có một lỗi trong logcat:
Only the original thread that created a view hierarchy can touch its views.
Bạn có thể giúp tôi được không? Cảm ơn trước.
Những câu trả lời đưa ra là đúng, nhưng tôi muốn thêm một cái gì đó. ProgressDialogs có 2 kiểu: STYLE_SPINNER (mặc định) và STYLE_HORIZONTAL. Theo [hộp thoại ui] (http://developer.android.com/guide/topics/ui/dialogs.html), chúng ta nên làm theo [hướng dẫn thiết kế cho Tiến trình & Hoạt động] (http://developer.android.com /design/building-blocks/progress.html) và sử dụng STYLE_HORIZONTAL (nếu có liên quan và có thể). Về vấn đề này tôi thấy [hướng dẫn này] (http://www.pavanh.com/2013/04/android-progress-dialog-example.html) rất hữu ích. Bây giờ bạn có sự lựa chọn phong cách của ProgressDialog bạn muốn ... –