2017-03-24 14 views
-2

경고 대화 상자를 사용하지 않겠지 만 이미 양수인 단추를 이미 설정 한 단추로 설정할 수 있습니다. 그럴 수 없다면, 커스텀 다이얼로그에서 양수 및 음수 버튼을 설정하는 방법이 있습니까?내 xml에 이미있는 Button을 대화 상자의 양수 또는 음수 단추로 설정할 수 있습니까?

+0

AlertDialog가 setContentView https://developer.android.com/reference/android/app/AlertDialog.Builder.html#setView(int)를 통해 맞춤 콘텐츠보기를 사용할 수 있다는 것을 알고 계십니까? 그런 다음 단추를보기에 연결하면 단추가 들리는 것을들을 수 있습니다. – JoxTraex

+0

@ JoxTraex 네, 알아요.하지만 어떤 버튼을 내가 긍정적 인 버튼으로하고 싶지는 말할 수 없었습니다. –

답변

0

다음 사용자 지정 경고 대화 상자를 사용할 수 있습니다.

public class CustomAlertDialog { 

    public void showDialog(Context activity, String msg, String buttonText, final CustomDialogListener customDialogListener){ //one button with callback 
     final Dialog dialog = new Dialog(activity); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setCancelable(false); 
     dialog.setContentView(R.layout.custom_alert); 

     TextView text = (TextView) dialog.findViewById(R.id.text_alertdialog); 
     text.setText(msg); 

     Button dialogButton = (Button) dialog.findViewById(R.id.btn_alert_dialog); 
     dialogButton.setText(buttonText); 
     dialogButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
       customDialogListener.onPositiveButtonClick(); 
      } 
     }); 

     dialog.show(); 

    } 

    public void showDialog(Context activity, String msg, String positiveButtonText, String negativeButtonText, final CustomDialogListener customDialogListener){//two button with callback 
     final Dialog dialog = new Dialog(activity); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setCancelable(false); 
     dialog.setContentView(R.layout.custom_alert_two_button); 

     TextView text = (TextView) dialog.findViewById(R.id.text_alert_two_dialog); 
     text.setText(msg); 

     Button positiveDialogButton = (Button) dialog.findViewById(R.id.btn_alert_two_dialog_YES); 
     Button negativeDialogButton = (Button) dialog.findViewById(R.id.btn_alert_two_dialog_NO); 
     positiveDialogButton.setText(positiveButtonText); 
     negativeDialogButton.setText(negativeButtonText); 

     positiveDialogButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
       customDialogListener.onPositiveButtonClick(); 
      } 
     }); 

     negativeDialogButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
       customDialogListener.onNegativeButtonClick(); 
      } 
     }); 

     dialog.show(); 

    } 


    public void showDialog(Context activity, String msg, String buttonText){ //simple alert without callback 
     final Dialog dialog = new Dialog(activity); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setCancelable(false); 
     dialog.setContentView(R.layout.custom_alert); 

     TextView text = (TextView) dialog.findViewById(R.id.text_alertdialog); 
     text.setText(msg); 

     Button dialogButton = (Button) dialog.findViewById(R.id.btn_alert_dialog); 
     dialogButton.setText(buttonText); 
     dialogButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 

     dialog.show(); 

    } 

} 

custom_alert.xml 한 버튼 메시지를 표시 한 텍스트 뷰를 포함한다.

custom_alert_two_button.xml에는 메시지를 표시하는 두 개의 버튼과 하나의 textView가 있습니다.

마지막으로 메시지를 표시 할 텍스트 뷰가 하나만 포함됩니다.