프로그래밍 언어/Android

[안드로이드] 버튼을 클릭 할 때 대화 상자가 닫히지 않도록 하는 방법

Rateye 2021. 9. 8. 10:25
728x90
반응형
질문 : 버튼을 클릭 할 때 대화 상자가 닫히지 않도록하는 방법

입력을 위해 EditText 대화 상자가 있습니다. 대화 상자에서 "예"버튼을 클릭하면 입력을 확인한 다음 대화 상자를 닫습니다. 그러나 입력이 잘못된 경우 동일한 대화 상자에 남아 있습니다. 입력이 무엇이든 상관없이 "아니오"버튼을 클릭하면 대화 상자가 자동으로 닫힙니다. 어떻게 비활성화 할 수 있습니까? 그건 그렇고, 대화 상자의 버튼에 PositiveButton과 NegativeButton을 사용했습니다.

답변

수정 : 일부 댓글에서 언급 한대로 API 8 이상에서만 작동합니다.

이것은 늦은 답변이지만 AlertDialog에 onShowListener를 추가하여 버튼의 onClickListener를 재정의 할 수 있습니다.

final AlertDialog dialog = new AlertDialog.Builder(context)
        .setView(v)
        .setTitle(R.string.my_title)
        .setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick
        .setNegativeButton(android.R.string.cancel, null)
        .create();

dialog.setOnShowListener(new DialogInterface.OnShowListener() {

    @Override
    public void onShow(DialogInterface dialogInterface) {

        Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Do something

                //Dismiss once everything is OK.
                dialog.dismiss();
            }
        });
    }
});
dialog.show();
출처 : https://stackoverflow.com/questions/2620444/how-to-prevent-a-dialog-from-closing-when-a-button-is-clicked
728x90
반응형