У меня есть диалог в деятельности. Теперь скройте диалог, затем покажите диалоговое окно запроса на разрешение и отклоните запрос. Скрытый диалог будет автоматически отображаться.
Вот мой тестовый код:
(1) Показать диалог:
BT_showDialog = (Button)findViewById(R.id.BT_showDialog);
BT_showDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//create & show dialog
Log.d("TestLog","create & show dialog");
final Dialog dialog = new Dialog(MainActivity.this);
Button bt_hideDialog = new Button(MainActivity.this);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
bt_hideDialog.setLayoutParams(params);
bt_hideDialog.setText("Hide Dialog.");
bt_hideDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(dialog != null){
Log.d("TestLog","Hide button clicked");
dialog.hide();
}
}
});
dialog.setContentView(bt_hideDialog);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
});
(2) Нажмите «Скрыть диалоговое окно», чтобы скрыть это диалоговое окно, а затем нажмите «кнопку запроса», чтобы запросить разрешение на отображение диалогового окна разрешений для устройства.
BT_showPermissionDailog = (Button)findViewById(R.id.BT_showPermissionDailog);
BT_showPermissionDailog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("TestLog","Request permission");
if(Build.VERSION.SDK_INT >=23){
//camera
int result = MainActivity.this.checkSelfPermission(Manifest.permission.CAMERA);
if(result != PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
Manifest.permission.CAMERA)) {
}
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CAMERA},1);
}
}
}
});
(3) Отклонить это разрешение. После закрытия диалогового окна разрешения автоматически отображается скрытое диалоговое окно. Нажмите «Скрыть диалог», можно увидеть журнал «Скрыть кнопку нажал», но ничего не работает.