2013-08-02 47 views
1

我有一個接一個順序顯示警報對話框的問題。 我想顯示三個警告對話框,但每次第三個是第一個出現在這種情況下第二個應該是第二個,第一個始終是最後一個。 我希望它們按代碼順序顯示。 請考慮代碼,並告訴我爲什麼會發生這種情況並提供一個可靠的解決方案。爲什麼Alert對話框沒有按正確的順序顯示?

私有靜態類擴展MyHandler的處理程序{

MainActivity activity; 

    public MyHandler(MainActivity activity){ 
     this.activity = activity; 
    } 
    @Override 
    public void handleMessage(Message msg) 
    { 
     if(activity.connectionToTupleSpace == true) 
     { 
      activity.showDialog("Dialog 1", "It should be displayed first"); 
      activity.showDialog("Dialog 2", "It should be displayed second"); 
      activity.showDialog("Dialog 3", "It should be displayed third"); 
     } 
     else 
     { 
      Toast.makeText(activity.getBaseContext(), " No connection to Tuple Space Server", Toast.LENGTH_SHORT).show(); 

     } 
    } 
};//handler for Thread 



private void showDialog(String title, String message) 
{ 
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
    builder.setTitle(title); 
    builder.setMessage(message); 
    builder.setPositiveButton("OK", null); 
    builder.show(); 
} 

回答

1

顯示,他們是按照正確的順序。

首先,顯示對話框號碼1. 然後,你顯示對話框數2 ON數1 的TOP然後,你顯示對話框數3 ON數目的TOP 2.

這意味着,數字3將被首先顯示因爲這是你添加的最新的一個。

因此最簡單的解決辦法是:只是順序顛倒,首秀3,然後2,然後1 :)

+1

另一個好的解決方案也是在第一個對話框被解除之後執行下一個對話框:)所以要麼使用IF語句,要麼點擊按鈕打開新的對話框。 – Guy

+0

我試圖用按鈕點擊打開下一個對話框,但仍然以相同的方式發生... – Dilazak

0

據我所知,在你的代碼,您使用MainActivity的3個實例,所以有3個activites ,所以如果你知道「堆棧」,你會發現它是合理的。我認爲你應該增加值來爲每個AlertDialog設置優先級。

相關問題