약 3 주 동안 Android 스튜디오에서 배우고 놀려고했습니다. 방금 AlertDialogue가 양수 버튼을 클릭 할 때 해고하지 않는 상황이 발생했습니다.AlertDialog가 닫히지 않고 닫히기 위해 두 번 탭합니다.
private void showGPSDisabledAlertToUser() {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_Alert);
} else {
builder = new AlertDialog.Builder(this);
}
builder.setTitle("Turn On Location/GPS");
builder.setCancelable(false);
builder.setMessage("Application Needs To Determine Device's Physical Location.");
builder.setPositiveButton("YES, TURN ON", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); // This ain't working
goToInternetSettings();
}
});
builder.setNegativeButton("NO, CANCEL", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
closeApplication();
}
});
builder.create().show();
}
private void goToInternetSettings() {
Intent gpsSetting = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(gpsSetting);
}
private void closeApplication() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
}
양수를 두 번 클릭해야만 대화 상자를 닫을 수 있습니다.
반면에 네거티브 버튼을 사용하면 이러한 문제가 없습니다. 음수 단추는 전체 응용 프로그램을 종료하므로 그 문제를 처리하는 것이 같았을 것입니다.
감사합니다. 그러나이 경우에는 대화가 자동으로 닫히지 않습니다. 설정에서 돌아 오면 대화창은 열립니다. – Sebastian
'showGPSDisabledAlertToUser()'메소드를 동시에 두 번 호출했을 수도 있습니다. –