2011-08-24 177 views
2

我有一個應用程序,其中我有兩個按鈕,名爲'下一個'和'上一個'。這些按鈕用於瀏覽從url加載的故事。點擊按鈕時,對話框將顯示「請稍候加載數據」。當我們非常奢侈地拍攝下一個或上一個按鈕時,屏幕上會出現一個永不結束的對話框。避免多次點擊一個按鈕

正在做這樣說:

public void onClick(View v) { 

    try { 
     pDialog = new ProgressDialog(StoriesListController.this); 
     pDialog.setIndeterminate(true); 
     pDialog.setIcon(R.drawable.icon_small); 
     pDialog.setCancelable(true); 
     if (isFavoriteList == true) { 
      pDialog.setMessage("Loading favorites..."); 
     } else { 
      pDialog.setMessage("Loading data..."); 
     } 
     pDialog.setTitle("Please wait"); 
     pDialog.setOnCancelListener(new OnCancelListener() { 

      public void onCancel(DialogInterface arg0) { 
       if (cancelableHeavyWorker != null) { 
        cancelableHeavyWorker.setHandler(null); 
       } 
       finish(); 
      } 
     }); 
     pDialog.show(); 

     if (v == next) { 
      if (ind < items.size() - 1) { 
       ind++; 
       loadAndShowNextActivity(); 
      } 
     } else if (v == previous) { 
      if (ind > 0) { 
       ind--; 
       loadAndShowNextActivity(); 
      } 
     } 

    } catch (Exception e) { 

     Log.e("Error", "--.OnClink Message" + e.toString()); 
     e.printStackTrace(); 
    } 
} 

我要去哪裏錯了。我如何避免多次點擊或避免永不結束對話。任何幫助表示讚賞。

回答

2

或者到其他的答案,你可以單擊該按鈕時,一個布爾變量設置爲true,並將其設置爲false,當你完成處理點擊。

通過這種方式,您可以忽略多次點擊,而不必禁用該按鈕,可能會避免令人討厭的按鈕閃爍。

3

禁用「下一步」按鈕,直到數據完全加載或取消進程。

3

點擊按鈕後,做setEnabled(false)這個按鈕,禁用多次點擊

0

點擊後放的setEnabled(假)的按鈕,在loadAndShowNextActivity()駁回pDialog.dismiss()

0
dialogButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
       dialogButton.setEnabled(false); 
       .... 



dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
       @Override 
       public void onDismiss(DialogInterface dialogInterface) { 
        dialogButton.setEnabled(true); 
       } 
      });