Tôi muốn có ProgressDialog
với thanh tiến trình xác định thay vì spinner mặc định. Dường như dễ dàng: ProgressDialog
có phương thức setIndeterminate
và phương pháp show
chấp nhận boolean để biểu thị tính không xác định. Nhưng cách này không hiệu quả với tôi! Hộp thoại vẫn không xác định với một spinner. Làm thế nào để thay đổi hành vi?Xác định tiến trìnhDialog trong Android
Trả lời
Bạn cần gọi:
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
Kiểm tra các dev hướng dẫn chính thức Showing a progress bar với mã nguồn ví dụ gắn liền với phần đó.
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Registering. Please wait...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
Try this code should work fine...
Tôi nghĩ bạn đã hiểu nhầm tôi: Tôi cần thanh tiến trình xác định, cho biết quá trình hoàn tất. – aplavin
Oh Sorry.. Try this
1) Create a layout file with below code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/RelativeLayout_DownloadProgress" android:paddingLeft="20dp" android:paddingBottom="20dp" android:paddingRight="10dp" android:paddingTop="20dp">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/downloading_video_tv" android:text="@string/downloading_video" android:textStyle="bold" android:textColor="@color/COLOR_WHITE"></TextView>
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/download_progress_tv" android:text="@string/zero_percent" android:layout_below="@+id/downloading_video_tv" android:textColor="@color/COLOR_WHITE"></TextView>
<Button
android:id="@+id/download_cancel_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/downloading_video_tv"
android:text="@string/Cancel"
android:textColor="@color/COLOR_CANCEL_BTN" android:layout_marginLeft="5dp">
</Button>
<ProgressBar
android:id="@+id/download_progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="13dp"
android:layout_below="@id/download_progress_tv"
android:layout_toLeftOf="@id/download_cancel_btn"
android:indeterminateOnly="false"
android:max="100"
android:progressDrawable="@drawable/dwnld_progress" >
</ProgressBar>
</RelativeLayout>
2) In your code do the following
i) in oncreate() method add the following lines..
//Download progress layout inflate
RelativeLayout relativelayout_DownloadProgress = (RelativeLayout)_inflater.inflate(R.layout.downloadprogress, null);
TextView downloadProgress_PercentageTV = (TextView)relativelayout_DownloadProgress.findViewById(R.id.download_progress_tv);
Button downloadProgress_CancelBtn = (Button)relativelayout_DownloadProgress.findViewById(R.id.download_cancel_btn);
ProgressBar download_progressBar = (ProgressBar)relativelayout_DownloadProgress.findViewById(R.id.download_progressbar);
downloadProgress_CancelBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
dismissDialog(0);
}
});
ii) //Creating Dialogs i.e., below onCreate() method
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
return new AlertDialog.Builder(_activity)
.setView(relativelayout_DownloadProgress)
.create();
}//switch end
return null;
}//onCreateDialog()
iii) on any click event add the following lines.
showDialog(0);download_progressBar.setProgress(0);
Sorry i know its too long code but its working code in application...Try it might need modifications like variables must be declared in class scope.
liệu mã trên có hữu ích đối với bạn không .... – Ishu
Mã này sử dụng ProgressBar, không phải ProgressDialog. Tôi hy vọng nó có thể đạt được hành vi như vậy với ProgressDialog, và chỉ nếu nó không phải là, sẽ làm theo cách bạn đề nghị. – aplavin
Có nó sử dụng ProgressBar, nhưng xem đó được hiển thị như là hộp thoại để họ không phải là không có vấn đề và cùng là mã làm việc trong ứng dụng hiện tại của tôi im làm việc. – Ishu
Ví dụ tại liên kết này thực sự hữu ích, cảm ơn) – aplavin