AlertDialog의 setCancelable (false) 메서드가 작동하지 않습니다.
잘 작동하는 AlertDialog를 만들었습니다.
1) 키보드 이스케이프 버튼 또는
2) 마우스로 뒤로 버튼을 누르면 사라집니다
. 위의 조건에도 집중할 수 있도록 빌드하는 동안 '.setCancelable (false)'문을 추가했습니다. 하지만 여전히 대화가 사라지는 것을 볼 수 있습니다. 어디에 문제가 있습니까? 도와주세요.
코드 추가 :
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
환경 : XP Professional의 Android 4.0.
인가 이 당신의 전체 코드? 다음 setCancelable(false)
과 같이 설정하기 위해 코드를 변경하십시오
void showDialog() {
DialogFragment newFragment = MyAlertDialogFragment.newInstance(
R.string..alert_dialog_two_buttons_title);
newFragment.setCancelable(false);
newFragment.show(getFragmentManager(), "dialog");
}
대화 상자가 취소 불가능으로 설정되어 있지만 호스트 조각은 여전히 취소 할 수 있습니다. 조각을 setCancelable(false)
.
또 다른 작업 예 :
1 단계
수업 만들기 :
public class DialogActivity extends android.app.DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.myMessage);
setCancelable(false);
return builder.create();
}
}
2 단계
에 방법 추가 Activity
:
private boolean showDialog() {
FragmentManager manager = getFragmentManager();
DialogActivity dialogActivity;
dialogActivity = new DialogActivity();
dialogActivity.show(manager, "DialogActivity");
return true;
}
3 단계
Call showDialog()
when you need to show dialog
dialog.setCanceledOnTouchOutside(false);
setCanceledOnTouchOutside(boolean)
Sets whether this dialog is canceled when touched outside the window's bounds. If setting to true, the dialog is set to be cancelable if not already set.
The simplest way to implement "setCancelable" is to implement the same when calling the dialog in the activity; That way, not directly in the dialog class.
Dialog myDialog = new Dialog();
myDialog.setCancelable( false );
myDialog.show( getSupportFragmentManager(),"dialog" );
return true;
In Kotlin for making dialog non-dismissible
dialog.isCancelable =false
참고URL : https://stackoverflow.com/questions/8906269/alertdialogs-setcancelablefalse-method-not-working
'Programing' 카테고리의 다른 글
redirect_to! = return (0) | 2020.11.30 |
---|---|
Django는 ManyToMany 카운트에서 모델을 필터링합니까? (0) | 2020.11.30 |
Postgresql 잘림 속도 (0) | 2020.11.30 |
Ansible : 별도의 Vault 파일에서 인벤토리 파일의 일부 변수를 암호화하는 방법은 무엇입니까? (0) | 2020.11.30 |
Bootstrap 4의 열 중앙에 콘텐츠 배치 (0) | 2020.11.30 |