SystemAlertDialogManager 类
public class SystemAlertDialogManager : Activity
{
private Dialog mDialog;
private Button mYes;
private Button mNo;
private Context mContext;
private TextView tvTitle;
public SystemAlertDialogManager(Context context)
{
this.mContext = context;
}
public void ShowRecordingDialog(string remind, string yes, string no)
{
this.mDialog = new Dialog(mContext, Resource.Style.SystemAlertDialog);
this.mDialog.RequestWindowFeature((int)WindowFeatures.NoTitle);
LayoutInflater inflate = LayoutInflater.From(mContext);
View view = inflate.Inflate(Resource.Layout.dialog_confirm, null);
mDialog.SetContentView(view);
this.mYes = view.FindViewById<Button>(Resource.Id.btnSure);
this.mNo = view.FindViewById<Button>(Resource.Id.btnCancel);
this.tvTitle = view.FindViewById<TextView>(Resource.Id.tvTitle);
tvTitle.Text = remind;
mYes.Text = yes;
mNo.Text = no;
mYes.Click += mYes_Click;
mNo.Click += mNo_Click;
mDialog.Show();
}
void mNo_Click(object sender, EventArgs e)
{
if (NoClicked != null)
{
NoClicked(mContext, e);
}
}
void mYes_Click(object sender, EventArgs e)
{
if (YesClicked != null)
{
YesClicked(mContext, e);
}
}
public void CloseDialog()
{
this.mDialog.Dismiss();
this.mDialog.Dispose();
this.mDialog = null;
}
public event EventHandler<EventArgs> YesClicked;
public event EventHandler<EventArgs> NoClicked;
}
style样式
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="SystemAlertDialog" parent="android:Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
</style>
</resources>
dialog_confirm
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="@dimen/dialog_w"
android:layout_height="@dimen/dialog_h"
android:background="@drawable/dialog_bg"
android:minWidth="25px"
android:minHeight="25px">
<TextView
android:text="标题"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/dialog_title_mt"
android:textSize="@dimen/dialog_title_font"
android:textColor="@android:color/white"
android:paddingBottom="@dimen/dialog_title_mb"
android:gravity="center"
android:id="@+id/tvTitle" />
<LinearLayout
android:orientation="horizontal"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/linearLayout1">
<Button
android:text="确定"
android:layout_width="@dimen/dialog_btn_w"
android:layout_height="wrap_content"
android:textSize="@dimen/dialog_button_font"
android:textColor="@drawable/dialog_btn_selector"
android:paddingTop="@dimen/dialog_button_ptb"
android:paddingBottom="@dimen/dialog_button_ptb"
android:gravity="center"
android:background="@android:color/transparent"
android:id="@+id/btnSure" />
<Button
android:text="取消"
android:layout_width="@dimen/dialog_btn_w"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textSize="@dimen/dialog_button_font"
android:textColor="@drawable/dialog_btn_selector"
android:paddingTop="@dimen/dialog_button_ptb"
android:paddingBottom="@dimen/dialog_button_ptb"
android:gravity="center"
android:id="@+id/btnCancel" />
</LinearLayout>
</LinearLayout>
界面中使用
var msg = new SystemAlertDialogManager(this);
msg.ShowRecordingDialog("是否删除数据", "确定", "取消");
msg.YesClicked += new EventHandler<EventArgs>((a, b) =>
{
msg.CloseDialog();
//这里点击确定以后要执行的操作
});
msg.NoClicked += new EventHandler<EventArgs>((a, b) =>
{
msg.CloseDialog();
});