2017-02-21 79 views
1

我創建了一個警報對話框構建器,其中顯示對話框中的表單我的正面按鈕名稱提交我希望按鈕被禁用,除非表單中的所有字段都已填充.Below是我的代碼可以幫助我們解決這個問題。 感謝禁用警報對話框構建器中的正向按鈕

 alertDialogBuilder.setPositiveButton("SAVE", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        nameInput1 = data_txt1.getText().toString(); 
        nameInput2 = data_txt2.getText().toString(); 
        nameInput3 = data_txt3.getText().toString(); 
        nameInput4 = data_txt4.getText().toString(); 
        nameInput5 = data_txt5.getText().toString(); 

        nameInput6 = auto_txt1.getText().toString(); 
        nameInput7 = auto_txt2.getText().toString(); 
        nameInput8 = auto_txt3.getText().toString(); 
        nameInput9 = auto_txt4.getText().toString(); 
        nameInput10 = auto_txt5.getText().toString(); 
        nameInput11 = auto_txt6.getText().toString(); 
        nameInput12 = auto_txt7.getText().toString(); 
        nameInput13 = auto_txt8.getText().toString(); 
        nameInput14 = auto_txt9.getText().toString(); 

        nameInput15 = data_txt6.getText().toString(); 
        nameInput16 = data_txt7.getText().toString(); 



         Call<Void> completeQuestionnaireCall = spreadsheetWebService.completeQuestionnaire(nameInput1, nameInput2, nameInput3, nameInput4, nameInput5, nameInput6, nameInput7, nameInput8, nameInput9, nameInput10, nameInput11, nameInput12, nameInput13, nameInput14, nameInput15, nameInput16); 
         completeQuestionnaireCall.enqueue(callCallback); 
         dialog.dismiss(); 

        } 



       } 
      }); 

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

     } 
    }); 

    alertDialogBuilder.show(); 
} 

回答

0

試試這個

alertDialogBu​​ilder.create()getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(假)。

0

使用可以這樣做了積極的按鈕:

dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 

而且,對於負按鈕:

....your code for alert dialog 
    AlertDialog dialog = b.create(); // here b is reference of AlertDialog.Builder and in your case replace b with alertDialogBuilder 
    dialog.show(); 
    Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE); 
    button.setEnabled(false); 

希望這樣的:

dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false); 
0

您可以通過這種方式做到這一點將有所幫助。

0

創建將檢查所有的輸入您的Utils類或可在當前的類使用它

public static boolean checkifEmptyText(String[] fields,Context context) { 
    for (String currentField : fields) { 
     if (currentField.getText().toString().trim().length() <= 0) { 
      return false; 
     } 
    } 
    return true; 
} 

檢查它現在這樣

if(checkifEmptyText(new String[]{all your strings}),context) 
{ 
Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE); 
button.setEnabled(true); 
} 
else 
{ 
Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE); 
button.setEnabled(false); 
} 
0

你也可以做一個方法通過這個:

new AlertDialog.Builder(this) 
    .setMessage("This may take a while") 
    .setPositiveButton("OK", new android.content.DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     ((AlertDialog)dialog).getButton(which).setVisibility(View.INVISIBLE); 
     // the rest of your stuff 
    } 
}) 
    .show(); 
相關問題