2016-03-26 32 views
1

Android'de geçebileceğiniz bir dizi iletişim menüsü oluşturarak Android'de bir USSD etkileşimine girmeye çalışıyorum. Ben diyaloglar arasında, "USSD kodu çalışıyor ..." diyen bir ilerleme diyalogu var ki yapmaya çalışıyorum. Ancak, pozitif butona tıkladığınızda, bir ProgressDialog'u çalıştırılabilir bir zamanlayıcı ile çalıştırmayı denediğimde FirstTimeUser adında bir sonraki iletişim kutusu ile, başka bir zamanlayıcı ile ayırmaya çalışsalar bile, bir başkasının üzerine katlanırlar. Eşzamanlı olarak yerine onları sırayla nasıl çalıştırabilirim? Aşağıdaki kod parçacıkları:İletişim Kutuları Arasındaki İlerlemeyi Göster

USSDprogressDialog(); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    LayoutInflater inflater = this.getLayoutInflater(); 

    // Inflate and set the layout for the dialog 
    // Pass null as the parent view because its going in the dialog layout 
    final View dialogView = inflater.inflate(R.layout.number_response_dialog, null); 
    builder.setView(dialogView) 
      .setMessage(R.string.MainMenuText) 
      // Add action buttons 
      .setPositiveButton(R.string.send, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        // Send number to next dialog 
        String choice = getMenuChoice(dialogView); 
        if (choice.equals("5")) { 
         USSDprogressDialog(); 
         FirstTimeUse(); 
        } else { 
         //Do nothing 
        } 
       } 
      }) 
      .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        // End session 
       } 
      }); 
    AlertDialog dialog = builder.create(); 
    dialog.show(); 

Ve bir zamanlayıcı ile iletişim ilerleme:

public void USSDprogressDialog() { 
    final ProgressDialog progress = new ProgressDialog(this); 
    progress.setMessage("USSD code running..."); 
    progress.show(); 


    Runnable progressRunnable = new Runnable() { 

     @Override 
     public void run() { 
      progress.cancel(); 
     } 
    }; 

    Handler handler = new Handler(); 
    handler.postDelayed(progressRunnable, 2000); 
} 

herhangi bir öneriniz hoş olurdu! Teşekkür ederim!

cevap

1

FirstTimeUse() iletişim kutusunun progressCancel öğesinin üzerine taşır. belki de USSDprogressDialog (Runnable runnable)

+0

'u yapmanız gerekiyor Önerileriniz için FirstTimeUse'i dahil etmeyi denedim, ve bu işe yaradı! Ama şimdi başka bir sorunum var, bu da tüm diyaloglar arasına dahil edebilmek için USSDProgressDialog jenerikini yapmam gerektiği ve birçok diyaloğum var. Bununla çalışacağım. Teşekkür ederim!! – notchopra

+0

ikinci cümleye bakın - USSDprogressDialog çalışabilir bir –

+0

Ah! Şimdi ne demek istediğini görüyorum. Teşekkür ederim!! – notchopra

İlgili konular