大家好,我使用firebase创建了推送通知,我想将数据设置为应该为全局对话框的对话框。通知到达时,应用程序应在每个活动中显示对话框。请帮助我创建全局对话框。谢谢!
答案 0 :(得分:0)
创建一个 BaseActivity ,所有 Activity 都需要对其进行扩展, 在BaseActivity类中编写一个 LocalBroadcast 侦听器,然后从FireBaseMessaging服务中收听广播创建一个对话框,以在BaseActivity类中显示该消息,从而可以在所有对话框上显示对话框活动(扩展基本活动)
答案 1 :(得分:0)
在全局类中创建一个静态函数,以便可以从任何其他活动进行访问。可能以下代码可以为您提供帮助。
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();
}
};