2014-03-05 192 views
0

我在操作欄中進行了更新。當你點擊它時,對話框將顯示要求檢查互聯網連接。問題是沒有出現對話框。我想知道我的代碼是否有問題。對話框不工作 - Android

private void Refresh() { 

    if(IsparkLib.isInternetConnected(InquiryMainActivity.this)){ 
     nameOfMethod(); 

     AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 
     dialog.setTitle("Are you sure you want to update?"); 
     dialog.setCancelable(true); 
     dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int arg1) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(InquiryMainActivity.this,InquiryMainActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(intent); 
      } 
     }); 
    } 
    else{ 
     AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 
     dialog.setTitle("Warning"); 
     dialog.setPositiveButton("OK",null); 

     final TextView mes = new TextView(InquiryMainActivity.this); 
     mes.setTextColor(Color.BLACK); 
     mes.setText("Please check your internet connection"); 
     mes.setTextSize(20); 


    } 

回答

2

我想你不是打電話給dialog.show();。檢查一次。

在else塊嘗試像這樣...

else{ 
    AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 
    dialog.setTitle("Warning"); 
    dialog.setPositiveButton("OK",null); 

    final TextView mes = new TextView(InquiryMainActivity.this); 
    mes.setTextColor(Color.BLACK); 
    mes.setText("Please check your internet connection"); 
    mes.setTextSize(20); 

    dialog.show();//=> here is the change 
} 
+0

感謝。爲你投票。 :) – jajaja

1

編輯您的代碼

private void Refresh() { 

    if(IsparkLib.isInternetConnected(InquiryMainActivity.this)){ 
     nameOfMethod(); 

     AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 
     dialog.setTitle("Are you sure you want to update?"); 
     dialog.setCancelable(true); 
     dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int arg1) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(InquiryMainActivity.this,InquiryMainActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(intent); 
      } 
     }); 

     dialog.show(); 
    } 
    else{ 
     AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 
     dialog.setTitle("Warning"); 
     dialog.setPositiveButton("OK",null); 

     /*final TextView mes = new TextView(InquiryMainActivity.this); 
     mes.setTextColor(Color.BLACK); 
     mes.setText("Please check your internet connection"); 
     mes.setTextSize(20);*/ It's not necessary 

     dialog.setMessage("Please check your internet connection");// 

     dialog.show(); 
    } 
+0

感謝它現在的工作,但問題是取消不顯示。 :/ – jajaja

+0

@jajaja使用此代碼'dialog.setCancelableOnTouchOutside(true);' –

+0

它仍然顯示錯誤:/ – jajaja

3

您需要調用AlertDialog.show()到在屏幕上顯示警報做得一樣:

AlertDialog alertDialog = dialog.create(); 
// show it 
alertDialog.show(); 
+0

感謝它現在的工作,但問題是取消不顯示。 :/ – jajaja

+0

@jajaja:你試過'alertDialog.cancel()'? –

+0

它顯示錯誤。 :/ – jajaja

2

您忘記了從AlertDialog.Builder對象創建AlertDialog實例,並且顯示對話框。

另一件事,你已經嘗試創建AlertDialog.Builder對象都if-else條件Refresh()方法,但你應該建立如下的if-else條件外...

private void Refresh() { 

    AlertDialog.Builder dialog = new AlertDialog.Builder(InquiryMainActivity.this); 

    if(IsparkLib.isInternetConnected(InquiryMainActivity.this)){ 
     nameOfMethod(); 

     dialog.setTitle("Are you sure you want to update?"); 
     dialog.setCancelable(true); 
     dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int arg1) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(InquiryMainActivity.this,InquiryMainActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(intent); 
      } 
     }); 

    } else { 

     dialog.setTitle("Warning"); 
     dialog.setPositiveButton("OK",null); 

     final TextView mes = new TextView(InquiryMainActivity.this); 
     mes.setTextColor(Color.BLACK); 
     mes.setText("Please check your internet connection"); 
     mes.setTextSize(20); 

    } 

    AlertDialog alertDialog = dialog.createDialog(); 
    alertDialog.show(); 

} 

更新:

對於取消選項,您必須添加另一個按鈕到對話框如下...

dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int id) { 

     //add your code 
     dialog.dismiss(); 

    } 
}); 
+0

感謝它的工作,但問題是取消不顯示。 :/ – jajaja

+0

對於哪個對話框不起作用...「你確定要更新嗎?還是'Warning'? –

+0

我的意思是我想顯示選擇,確定和取消。它顯示在我的代碼中。 – jajaja

2

ifelse條件如下兩個線路添加這個..

AlertDialog alertDialog = dialog.createDialog(); 
    alertDialog.show(); 

你完成你的代碼....

+0

感謝它現在的工作,但問題是取消不顯示。 : – jajaja

+1

謝謝,我明白了。它應該是setNegativeButton()。爲您投票! :) – jajaja

+0

只是真棒arvind .... –