Создайте статическую функцию внутри глобального класса, чтобы к ней можно было получить доступ из любого другого действия.Возможно, вам поможет следующий код.
public class AppDialog {
public static void showAppSettingDialog(Context context, String title, String msg,
DialogInterface.OnClickListener positiveClick,
DialogInterface.OnClickListener negativeClick) {
AlertDialog alertDialog = null;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
// set title
alertDialogBuilder.setTitle(title);
// set dialog message
alertDialogBuilder
.setMessage(msg)
.setCancelable(false)
.setPositiveButton(context.getText(R.string.txt_countinue), positiveClick)
.setNegativeButton(context.getText(R.string.txt_not_now), negativeClick);
// create alert dialog
alertDialog = alertDialogBuilder.create();
alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
// show it
alertDialog.show();
}
}
Вызовите функцию, как показано ниже:
AppDialog.showAppSettingDialog(HomeActivity.this,
getString(R.string.txt_read_permission_title), getString(R.string.txt_read_permission),
positiveClick, negativeClick);
Вы можете получить клик на отдельном экране / деятельности, передавая щелчок по нажатию кнопки иполучить его, как показано ниже:
positiveClick = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// your positive click
}
};
negativeClick = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// your negative click
dialogInterface.dismiss();
}
};