Oca 06

Android’de uygulamamız arkaplanda bir şeylerle meşgulken kullanıcıya o sırada bir uyarı verilmesini ve kullanıcının arkada işleyen konu hakkında bilgi sahibi olmasını isteyebiliriz. Çünkü bu esnada kullanıcıyı bilgilendirmezsek programın takıldığını yâda kendisine verilen işlemi yerine getirmediğini düşünüp uygulamayı kapatabilir, telefonundan kaldırabilir.

Kullanıcıyı uyarmanın birden çok yolu var. (Toast, AlertDialog, ProgressDialog vb.)

Daha önce Toast ve AlertDialog ile ilgili örnekler yaptığımız için bugün ProgressDialog kullanımının nasıl olduğuna bakalım.

Hemen kod yapısını inceleyelim.

ProgressDialog pd = new ProgressDialog(MainActivity.this);
pd.setMessage("İşlem Gerçekleştiriliyor.Lütfen Bekleyiniz..");
pd.show();

Kısaca anlatmak gerekirse; yeni bir progressDialog nesnesi oluşturulur. İçerisine vermek istediğimiz mesaj eklenir ve show edilir.
Bu mesajın nerede verilmesini istiyorsak o alana yukarıdaki koda benzer progressDialog oluşturup show metoduyla görüntülemek yeterli olacaktır.

Ekran çıktısı aşağıdaki gibi olacaktır.
14.1

11 Yorum “ProgressDialog Kullanımı”

  1. avatar Mahsum diyor ki:

    Mrb Hocam Ben Bunu Kullandımda Ben Play Buttonuna Basınca ProgressDialog’un Calısmasını ıstıyorum bunu nasıl yaparım acaba

  2. avatar Hüseyin Bodur diyor ki:

    Slm.Butonun Click olayı içerisine yazacaksın.

  3. avatar Mahsum diyor ki:

    Son Bırsey Hocam Suan Play A Basınca Istedıgım Sekılde ProgressDialog acılıyor Ama baglandıktan sonra nasıl Kapanacak..?

  4. avatar Hüseyin Bodur diyor ki:

    Slm.Onun için bir kontrol koymalısın.Radyo çalmaya başlayınca kontrolü tetiklesin ve progressDialog’u kapatsın.
    Bu şekilde yapabilirsin.

  5. avatar Mahsum diyor ki:

    ornek varmi Hocam ?

  6. avatar Hüseyin Bodur diyor ki:

    Örnek var evet. O örneği senin projeye uyarlayacak olursak startPlaying() altında progressDialog nesnesini dismiss() etmen yeterli olacaktır.

  7. avatar Mahsum diyor ki:

    s.a Dedıgınız gıbı Hocam startPlaying() altına dismiss() ettım ama bu seferde ekrandan Kaybolmuyor Hıc

  8. avatar Hüseyin Bodur diyor ki:

    Öncelikle yeni bir asenkron yapı oluştur.Mesela adı arkaPlanIsleri olsun.

    Asenkron yapının kod blogu aşağıda.

    public class arkaPlanIsleri extends AsyncTask {

    private ProgressDialog dialog = new ProgressDialog(MainActivity.this);

    @Override
    protected void onPostExecute(Void result) {
    // TODO Auto-generated method stub

    dialog.dismiss(); // Burada progressDialog’u sonlandır.
    }

    @Override
    protected void onPreExecute() {
    // TODO Auto-generated method stub
    dialog.setMessage(“Yukleniyor…”); //dialog yüklemelerini burada yap.
    dialog.show();
    }

    @Override
    protected Void doInBackground(Void… params) {
    // TODO Auto-generated method stub

    // Radyo işlemlerini buraya koy.Radyonun yüklenmesi gibi.
    return null;
    }

    }

    Son olarak onCrate() metodu altında oluşturduğun asenkron sınıfı çalıştır.

    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new arkaPlanIsleri().execute();

    }

  9. avatar Hüseyin Bodur diyor ki:

    Baktım Evet.
    http://huseyinbodur.net/?p=272
    Ama progressDialog çok kısa bir süre görünüp kayboluyor.
    Bunun nedeni doInBackground() işleminde basit bir class çağırma işleminin yapılması.Bu işlem uzun sürmediği için kısa sürede progressDialog kayboluyor.
    İstersen kodlar üzerinde oynayabilir. Asenkron çağırma işlemini RadioService.java sınıfı içerisinde yaparak progressDialog’un ekranda kalma süresini uzatabilirsin.

Yorum Yaz