我正在开发一个应用程序,它会在收到事件时显示一个警报对话框。目前,警报只会出现在该特定活动中。我需要在所有屏幕(例如主屏幕、消息屏幕等)上收到此警报,但我正在通话中。
请为此提供解决方案。
我正在开发一个应用程序,它会在收到事件时显示一个警报对话框。目前,警报只会出现在该特定活动中。我需要在所有屏幕(例如主屏幕、消息屏幕等)上收到此警报,但我正在通话中。
请为此提供解决方案。
使用静态方法创建一些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();
您可以在放置此静态方法的 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();
}
在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();
}
例如,在需要显示 alert 的类中:
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();
创建一个类并在其中创建一个构造函数。将 Activity 上下文传递给构造函数。现在制作一个函数并将警报对话框的代码放入其中。
现在,无论何时您想要该对话框,您都可以使用该类的 crate 对象调用它并调用警报对话框的函数。