다음 코드를 사용하여 AlertDialog를 표시하고 "재시도"를 누르라는 메시지를 표시합니다. 연결이 가능할 때까지 대화 상자가 화면에 남아 있어야합니다. 네트워크를 사용할 수 없으면 대화 상자가 나타납니다.네트워크를 사용할 수없는 동안 AlertDialog를 화면에 유지하는 방법
문제는 대화 상자가 화면 어딘가에 닿거나 재시도 버튼을 누르면 바로 해제된다는 것입니다. 어떻게 방지 할 수 있습니까?
다음 코드를 사용하여 AlertDialog를 표시하고 "재시도"를 누르라는 메시지를 표시합니다. 연결이 가능할 때까지 대화 상자가 화면에 남아 있어야합니다. 네트워크를 사용할 수 없으면 대화 상자가 나타납니다.네트워크를 사용할 수없는 동안 AlertDialog를 화면에 유지하는 방법
문제는 대화 상자가 화면 어딘가에 닿거나 재시도 버튼을 누르면 바로 해제된다는 것입니다. 어떻게 방지 할 수 있습니까?
setCanceledOnTouchOutside(false)
을 사용할 수 있습니다.
하지만 외부 터치 만 긍정적이거나 부정적인 버튼 클릭을 방지합니다. AlertDialog의 기본 동작은 dismiss()
호출 여부에 상관없이 모든 버튼에서 대화 상자를 닫습니다. 그래서 당신이이 행동을 끝내고 싶다면 당신은 이런 식으로해야합니다.
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Not Connected")
.setIcon(R.drawable.ic_play_icon)
.setView(R.layout.item_dialog)
.setCancelable(false)
.setMessage("You are not connected to the Internet");
final AlertDialog mDialog = builder.create();
mDialog.setCanceledOnTouchOutside(false);
mDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialogInterface) {
Button button = mDialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Do your validations task here
}
});
}
});
mDialog.show();
setCancelable (false)가 적합합니다.
AlertDialog.Builder builder = new AlertDialog.Builder(MainGroupActivity.this);
builder.setTitle("Not Connected")
.setIcon(R.drawable.disconnect)
.setView(mProgressBar)
.setCancelable(false)
.setMessage("You are not connected to the Internet")
.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Retry connection
if(isNetworkAvailable())
mDialog.dismiss();
}
});
setCancelable (false) 메소드가 작동하지 않았습니다. – JasonStack
alertDialog
의 구성에 setCancelable(false)
을 추가하십시오. 에서 대화 상자를 방지하기 위해
mProgressBar = new ProgressBar(MainGroupActivity.this);
AlertDialog.Builder builder = new AlertDialog.Builder(MainGroupActivity.this);
builder.setTitle("Not Connected")
.setIcon(R.drawable.disconnect)
.setView(mProgressBar)
.setMessage("You are not connected to the Internet")
.setCancelable(false)
.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Retry connection
if(isNetworkAvailable())
mDialog.dismiss();
}
});
mDialog = builder.create();
if(!isNetworkAvailable())
mDialog.show();
다시 키 프레스 사용에 기각하기이
dialog.setCancelable(false);
그리고 더 도움이
dialog.setCanceledOnTouchOutside(false);
을 사용하여 외부 터치에 기각하기에서 대화 상자를 방지하기 위해 이 질문을보십시오 : Prevent Android activity dialog from closing on outside touch
사용이 lib에 컴파일 'com.github.nikhilborad : basehelp : 1.02'이 방법 nbShowNoInternet() ...을 가지고 모든 이잖아. –