我正在开发一个应用程序,它会在收到事件时显示Alertdialog框。 目前,警报仅在该特定活动中出现。 我需要在所有屏幕上显示此警报(例如主屏幕,消息屏幕等),除非我正在通话。
请为此提供解决方案。
答案 0 :(得分:2)
使用静态方法创建一些Utils
类,该方法将Context
作为参数并构建整个对话框。
编辑:
public class Utils {
public static AlertDialog getDialog(Context context) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
return builder
.setTitle("title")
.create()
;
}
}
并在您需要的每个地方拨打电话:
Utils.getDialog(context).show();
答案 1 :(得分:1)
你可以在util包中创建一个AlartMessage.java文件,放置这个静态方法。
public static void showMessage(final Context c, final String title,
final String s) {
final AlertDialog.Builder aBuilder = new AlertDialog.Builder(c);
aBuilder.setTitle(title);
// aBuilder.setIcon(R.drawable.icon);
aBuilder.setMessage(s);
aBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
dialog.dismiss();
}
});
aBuilder.show();
}
答案 2 :(得分:0)
创建一个类并在其中创建一个构造函数。将Activity上下文传递给构造函数。现在创建一个函数并将Alert Dialog的代码放入其中。
现在,只要你想要那个对话框,就可以用该类的crate对象调用它,并调用alert对话框的功能。
答案 3 :(得分:0)
在Utils
课程中,制作此方法:
public static AlertDialog showAlertWithListeners(Context context, String title, String message, String textPositive,
String textNegative,
DialogInterface.OnClickListener positiveButtonClickListener,
DialogInterface.OnClickListener negativeButtonClickListener) {
if (textNegative != null)
return new AlertDialog.Builder(context)
.setTitle(title)
.setMessage(message)
.setPositiveButton(textPositive, positiveButtonClickListener)
.setNegativeButton(textPositive, negativeButtonClickListener)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
else
return new AlertDialog.Builder(context)
.setTitle(title)
.setMessage(message)
.setPositiveButton(textPositive, positiveButtonClickListener)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
例如,在需要显示警报的类中:
DialogInterface.OnClickListener positiveButtonClickListener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(context, SignInActivity.class));
SignUpActivity.this.finish();
}
};
AlertDialog successDialog = Utils.showAlertWithListeners(context, getResources().getString(R.string.success),
signUpDetailResponse.message, getResources().getString(R.string.ok), null,
positiveButtonClickListener, null);
successDialog.show();