0

Android geliştirmede çok yeniyim. Pek çok android öğreticisi ve makalesinden geçtim ama şu anda durumum hakkında biraz kafa karıştırıcıyım.Android'de 2 iletişim parçası yaşam döngüsü ile nasıl etkileşim kurabilirim?

Yapmam gerekenler: İki iletişim parçacığım var, f1 ve f2. Arka planda çalan bir ses var. Herhangi bir iletişim kutusu açıldığında, diyaloğu sonlandırdığında ses çalmayı durdurun, ses devam eder.

Ne yaptım: 2 yöntemle bir dinleyici arabirimi uyguladık: onCreateDialog ve onDismissDialog. Sadece bir iletişim için çalıştı (f1 veya f2 açılır ve ses durur. İletişim kutusu kapanır, ses devam eder)

Doğru olmayan: Durum: f1 açılır, "evet" e basın, f1 işten çıkarılır, f2 açılır. Ses duracak (aslında f1 açıldığı için zaten durmaktadır), daha sonra ses devam edecektir. Bu yüzden logu kontrol ettim, f1 onCreateDialog f1 onDismissDialog'dan önce çağrılmış gibi görünüyor, bu yüzden f2 açılırken ses tekrar devam ediyor.

Bu durumla ilgili neler yapabileceğimi bilen var mı? HERHANGİ yardım takdir edilir!

Çok teşekkürler!

+0

Sesin hep birlikte durmasını mı istiyorsunuz? Ben soruyla ilgili kafam karıştı. – Ashton

+0

Bir iletişim penceresi açıldığı sürece sesin durmasını istiyorum. F1, F1 görevden alındıktan sonra açılır. @Ashton – Zip

cevap

1
ArrayList <DialogFragment> dialogs = new ArrayList(); 

void resumeSound() { 
    for (DialogFragment dialog: dialogs){ 
     //maybe isVisible won't work, try with isAdded() or add a custom  
     //flag like [boolean isVisible] inside the Dialog 
     if (dialog.isVisible() { 
      return; 
     } 
    } 
    .... 
    //Code to resume sound; 
    .... 
} 
//Put following on each dialog fragment 
onCreateDialog() { 
    //Make sure dialog is added with a TAG or id, so you can find it later 
    dialogs.add(this); 
} 

onDismissDialog() { 
    //you'll have to put following line inside an array iterator, 
    //check if TAG or id equals, and then remove 
    //(maybe also implement equals() for DialogFragment 
    dialogs.remove(); 
    resumeSound(); 
} 
+0

Bu iyi bir nokta. Ama daha sonra 2 diyalogdan daha fazlasına sahip olacağımdan emin değilim, sadece diyalogların sayısı konusunda emin değilim. – Zip

+0

Düzenlenmiş yanıtımı kontrol et –

İlgili konular