2016-10-05 44 views
-2

このコードブロックで不正な状態の例外が発生している理由は何ですか?AlertDialogのアクティビティにフラグメントが添付されていません

mDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        if (isAdded()) { 
         Intent viewIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
         startActivity(viewIntent); 
         dialog.dismiss(); 
        } 
       } 
      }); 

私は新しいアクティビティを開始した後でダイアログを閉じるのですか?

+0

dialog.dismiss(); 

を交換してください。 – acrespo

答えて

1
    startActivity(viewIntent); 
        dialog.dismiss(); 

replace with below 
      dialog.dismiss(); 
      startActivity(viewIntent); 

これは、新しいアクティビティを開始した後にダイアログを閉じるためですか?

回答:はい

まあ活動とダイアログdifferent.Activityがダイアログを持っているので、アクティビティダイアログなし は、任意のスタンドを持っていないされている(UIオーバー 制御ではないダイアログを持っている唯一のアクティビティとして)。あなたが起動するときは、すべてのアクティビティ 状態はアクティビティスタックに保存されますが、スタックはダイアログの状態ではありません( コンテキストのみ)。任意のアクティビティによって表示されたダイアログが、アクティビティスタックダイアログに保存された終了またはゲットをUIから削除する必要がある場合。

+0

なので、新しいアクティビティを開始した後のダイアログの解除は本当ですか? – devadnqpnd

+0

いいえ.. Uは、最初のデンマークの新しいアクティビティを開こうとします。 – Sush

+0

本当に問題の原因となった新しいアクティビティを開始した後にダイアログが消えてしまったのですか?もしそうなら、理由を説明できますか? – devadnqpnd

0

ちょうどあなたがエラーの詳細情報を追加するには、スタックトレースを貼り付ける必要があります

 mDialog.dismiss(); 
関連する問題