Скрытый диалог будет автоматически отображаться при закрытии диалогового окна - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть диалог в деятельности. Теперь скройте диалог, затем покажите диалоговое окно запроса на разрешение и отклоните запрос. Скрытый диалог будет автоматически отображаться.

Вот мой тестовый код: (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) Отклонить это разрешение. После закрытия диалогового окна разрешения автоматически отображается скрытое диалоговое окно. Нажмите «Скрыть диалог», можно увидеть журнал «Скрыть кнопку нажал», но ничего не работает.

...