using System;
|
using Android;
|
using Android.App;
|
using Android.Content;
|
using Android.Views;
|
|
namespace Shared
|
{
|
/// <summary>
|
/// 对话框
|
/// </summary>
|
/// 2019--18 修改
|
public class Alert
|
{
|
/// <summary>
|
/// 当前信息框对象
|
/// </summary>
|
AlertDialog.Builder builder;
|
|
AlertDialog mAlertDialog;
|
|
/// <summary>
|
/// 对话窗
|
/// </summary>
|
/// <param name="title">标题</param>
|
/// <param name="message">信息</param>
|
/// <param name="cancelButtonText">取消按键备注,值null表示不显示取消按键</param>
|
/// <param name="okButtonText">确认按键备注</param>
|
public Alert (string title, string message, string cancelButtonText, string okButtonText)
|
{
|
//builder = new AlertDialog.Builder(Application.Activity);
|
builder = new AlertDialog.Builder(new ContextThemeWrapper(Application.Activity, Resource.Style.ThemeDeviceDefaultLight));//改为浅色主题
|
|
builder.SetMessage (message);
|
builder.SetTitle (title);
|
builder.SetCancelable (false);
|
builder.SetPositiveButton (okButtonText, new EventHandler<DialogClickEventArgs> ((sender, e) => {
|
ResultEventHandler?.Invoke(this, true);
|
}));
|
|
if (cancelButtonText != null) {
|
builder.SetNegativeButton (cancelButtonText, new EventHandler<DialogClickEventArgs> ((sender, e) => {
|
ResultEventHandler?.Invoke(this, false);
|
}));
|
}
|
|
mAlertDialog = builder.Create();
|
}
|
|
/// <summary>
|
/// 对话窗
|
/// </summary>
|
/// <param name="title">标题</param>
|
/// <param name="message">信息</param>
|
/// <param name="okButtonText">确认按键备注</param>
|
public Alert (string title, string message, string okButtonText) : this (title, message, null, okButtonText) { }
|
|
/// <summary>
|
/// 结果通知事件,true表示选中按键,false表示取消事件
|
/// </summary>
|
public Action<Alert, bool> ResultEventHandler;
|
|
/// <summary>
|
/// 显示当前的界面
|
/// </summary>
|
public void Show()
|
{
|
if (mAlertDialog != null)
|
{
|
if (mAlertDialog.IsShowing)
|
{
|
mAlertDialog.Dismiss();
|
}
|
|
mAlertDialog.Show();
|
}
|
|
}
|
|
|
/// <summary>
|
/// 关闭当前的界面
|
/// </summary>
|
public void Dismiss()
|
{
|
if (mAlertDialog != null && mAlertDialog.IsShowing)
|
{
|
mAlertDialog.Dismiss();
|
}
|
|
}
|
|
|
|
}
|
}
|