2012-03-31 26 views
5

ProgressDialog, varsayılan döndürücü yerine ilerleme çubuğu belirleyerek sahip olmak istiyorum. Kolay görünüyor: ProgressDialog yöntemi setIndeterminate yöntemine sahiptir ve yöntem show belirsizliği belirtmek için bir boole kabul eder. Ama bu yol benim için çalışmıyor! Diyalog hala bir spinner ile belirsizdir. Davranış nasıl değiştirilir?Android'de ProgressDialog öğesini belirle

progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 

Kontrol dışarı bu bölüme bağlı örnek kaynak kodu ile resmi dev kılavuzu Showing a progress bar:

cevap

9

Sen buna gerek.

+1

Bu bağlantıdaki örnek gerçekten yardımcı oldu, teşekkürler) – aplavin

-2
ProgressDialog dialog = new ProgressDialog(this); 
dialog.setMessage("Registering. Please wait..."); 
dialog.setIndeterminate(true); 
dialog.setCancelable(false); 
dialog.show(); 

Try this code should work fine... 
+1

Sanırım beni yanlış anladınız: Sürecin ne kadarının tamamlandığını gösteren kararlı ilerleme çubuğuna ihtiyacım var. – aplavin

0
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. 
+0

Yukarıdaki kodun size yararlı olup olmadığı .... – Ishu

+0

Bu kod, ProgressDialog ProgressBar kullanır. İnşallah, ProgressDialog ile bu tür davranışlara ulaşmak mümkündür ve eğer öyle değilse, önerdiğiniz gibi davranır. – aplavin

+0

Evet, ProgressBar kullanıyor, Ama bu görünüm iletişim kutusu olarak gösteriliyor, böylece bunların hiç bir problemi olmamalı ve aynı zamanda çalıştığım geçerli uygulamadaki aynı çalışma kodu. – Ishu