AlertDialog 에서 Toast 표시하기

By | 2021년 11월 20일
Table of Content

AlertDialog 에서 Toast 표시하기

AlertDialog 는 버튼 클릭시 무조건 창을 닫도록 되어 있다.

따라서, DialogInterface.OnClickListener 를 사용하는 대신,
View.OnClickListener 이벤트를 잡아서,
체크 및 Toast 를 표시하는 방법을 사용해야 한다.

        builder.setPositiveButton(R.string.ok,
                (dialog, which) -> {
                    // do nothing
                });
        builder.setNegativeButton(R.string.cancel,
                (dialog, id) -> dialog.cancel());

        AlertDialog alertDialog = builder.create();
        alertDialog.show();

        // DialogInterface.OnClickListener 대신 View.OnClickListener 사용
        alertDialog.getButton(Dialog.BUTTON_POSITIVE).setOnClickListener(
                v -> {

                    if (binding.edittextFolderName.getText().toString().equals("")) {
                        Toast myToast = Toast.makeText(context, R.string.folder_name_need, Toast.LENGTH_SHORT);
                        myToast.show();
                        return;
                    }

                    // do something

                    alertDialog.cancel();
                });

답글 남기기