I'm trying to figure out how to disable definitely an AlertDialog Box when I press the negative/positive button. My current app works tapping the screen and I want my app to show an AlertDialog Box at the first tap. This Box says "attention, some of the names are invented!" and the buttons are "Ok!"(positive button) and "Don't remind this to me"(Negative Button). In both cases I want the app to stop showing the Box at each tap because it's obviously frustrating and it has no sense to show a message at each tap (consider the user is going to tap 1 or 2 times every 5 secs). So I'm trying to figure out how to disable it after the first tap.
For now, this is what I wrote
public void tap(View view) {
final AlertDialog.Builder tapAlert = new AlertDialog.Builder(this);
tapAlert.setMessage("The names are mostly invented!");
tapAlert.setPositiveButton("Ok!", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
tapAlert.setNegativeButton("Don't remind it to me", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
tapAlert.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// do nothing, just allow dialog to close
// this happens on back button getting hit
}
});
tapAlert.setTitle("Attention!");
tapAlert.create();
tapAlert.show();
Just create a `boolean variable at class level
Then change that after it has shown once
This will work if you want it to show the first time every time the app runs. If you only ever want it to show on the first tap the save the boolean in SharedPreferences and check that when the Activity starts.
Even better would be to check that variable before calling the
tap()
method. Don't call it whenfirstTap
isfalse
.