2017-02-17 16 views
1

私のAndroidアプリをalertdialog経由で終了させるのが苦労しています。Androidアプリを終了できない

「はい」をクリックするともう一度再生され、アプリを再起動してもう一度やり直すようになります。

残念ながら、「いいえ」をクリックするとダイアログボックスのアラートボックスが削除され、その理由がわかりません。

大変助かりました。あなたが起動時に古いものをfinish()すべき生きているだけで1活性を保つために

DialogInterface.OnClickListener() { 


    @Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 

    } 
}); 

:あなたが互いの上にあなたがするたびに活動を追加し続ける

おかげ

@Override 
     public void onClick(View v) { 
      AlertDialog.Builder alert = new AlertDialog.Builder(Task1Activity.this); 
      alert.setMessage("You have guessed incorrectly three times. " + 
       "The answer was " + ranNum + ". " + "Would you like to play again?") 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
@Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 

    } 
}); 

alert 
.setCancelable(false) 
.setNegativeButton("No", new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
Task1Activity.this.finish(); 
}; 
) 
    .setTitle("Unlucky!") 
    .create(); 

答えて

1

アクティビティを作成していますスタックにアクティビティを追加した。

このコードを試してみてください。

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(
     Task1Activity.this); 
alertDialog.setTitle("Unlucky!"); 
alertDialog.setCancelable(false) 
alertDialog.setMessage("You have guessed incorrectly three times. " + 
      "The answer was " + ranNum + ". " + "Would you like to play again?"); 
alertDialog.setPositiveButton("YES", 
     new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i)  { 
       Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
       startActivity(i); 
      } 
     }); 
alertDialog.setNegativeButton("NO", 
     new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       alertDialog.dismiss(); 
       //getActivity().finish(); 
       finishAffinity(); //finish all previous activity on stack 
      } 
     }); 
alertDialog.show(); 
+0

ありがとうございます。私はこれを正確に試してみました。そして、アプリケーションを終了するという点で 'no'オプションが機能します。唯一の問題は、今や「はい」オプションはもはや利用できないということです。何か案は? –

+0

はいボタンを押すとどうなりますか? – rafsanahmad007

+0

それを忘れてしまった。私は 'いいえ'ボタンを否定的なものに変更するのを忘れていました。それは素晴らしい作品です。ありがとう –

0

新しいアクティビティ:

DialogInterface.OnClickListener() { 


    @Override 
    public void onClick(DialogInterface dialog, int which) { 

    Intent i = new Intent(Task1Activity.this, Task1Activity.class); 
    startActivity(i); 
    finish(); 
    } 
}); 
0

私は問題がstartActivity(i); [OK]をクリックすると、startActivity(i)は現在Task1Activityに別のTask1Activityを起動し、キャンセルを押すと、トップTask1Activityが仕上げされており、あなたが行くと思い前のTask1Activityに戻る。 フラグ付きのstartActivity(i)を試してください。

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
関連する問題