protected override void OnCreate(Bundle savedInstanceState)
        {
            string pass;

            this.Window.SetFlags(WindowManagerFlags.Secure, WindowManagerFlags.Secure);

            #region Initialize Activity
            base.OnCreate(savedInstanceState);
            Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            #endregion

            #region Initialize Widget
            EditText pKey_0    = FindViewById <EditText>(Resource.Id.pKey_0);
            EditText pKey_1    = FindViewById <EditText>(Resource.Id.pKey_1);
            EditText pKey_2    = FindViewById <EditText>(Resource.Id.pKey_2);
            SeekBar  seekBar   = FindViewById <SeekBar>(Resource.Id.seekBar);
            CheckBox isHard    = FindViewById <CheckBox>(Resource.Id.isHard);
            CheckBox isShort   = FindViewById <CheckBox>(Resource.Id.isShort);
            Button   generate  = FindViewById <Button>(Resource.Id.Generate);
            Button   clean     = FindViewById <Button>(Resource.Id.Clean);
            Button   randomStr = FindViewById <Button>(Resource.Id.RandomStr);
            #endregion

            RefreshLengthDisplay(FindViewById <TextView>(Resource.Id.current_length));

            seekBar.Max = 4;
            seekBar.Min = 0;

            seekBar.ProgressChanged += (sender, e) =>
            {
                Seekbar2Length(seekBar);
            };

            generate.Click += (sender, e) =>
            {
                Core.Core core = new Core.Core();
                pass = core.EncryptMyPass(pKey_0.Text, pKey_1.Text, pKey_2.Text, isHard.Checked, passLength);
                if (pass != null && pass != string.Empty && pass != "")
                {
                    var alertDialog = new Android.App.AlertDialog.Builder(this).Create();
                    alertDialog.SetTitle(Resources.GetString(Resource.String.alert_title));
                    alertDialog.SetMessage(Resources.GetString(Resource.String.pass_front) + " " + pass);
                    alertDialog.SetButton(Resources.GetString(Resource.String.ok), (s, a) => { });
                    alertDialog.SetButton2(Resources.GetString(Resource.String.copy_to_clipboard), async(s, a) =>
                    {
                        await Clipboard.SetTextAsync(pass);
                    });
                    alertDialog.Show();
                }
                else
                {
                    var alertDialog = new Android.App.AlertDialog.Builder(this).Create();
                    alertDialog.SetTitle(Resources.GetString(Resource.String.alert_title));
                    alertDialog.SetMessage(Resources.GetString(Resource.String.null_return));
                    alertDialog.SetButton(Resources.GetString(Resource.String.ok), (s, a) => { });
                    alertDialog.SetButton2(Resources.GetString(Resource.String.detail), (s, a) =>
                    {
                        var alertDialog2 = new Android.App.AlertDialog.Builder(this).Create();
                        alertDialog2.SetTitle(Resources.GetString(Resource.String.error_detail));
                        alertDialog2.SetMessage(Resources.GetString(Resource.String.null_return_code) + "\n" + Resources.GetString(Resource.String.null_return_disc));
                        alertDialog2.SetButton(Resources.GetString(Resource.String.ok), (n, m) => { });
                        alertDialog2.Show();
                    });
                    alertDialog.Show();
                }
            };

            clean.Click += (sender, e) => pKey_0.Text = pKey_1.Text = pKey_2.Text = string.Empty;

            isShort.CheckedChange += (sender, e) =>
            {
                if (isShort.Checked)
                {
                    var alertDialog = new Android.App.AlertDialog.Builder(this).Create();
                    alertDialog.SetTitle(Resources.GetString(Resource.String.warning));
                    alertDialog.SetMessage(Resources.GetString(Resource.String.lowlength_warning));
                    alertDialog.SetButton(Resources.GetString(Resource.String.confirm), (s, a) =>
                    {
                        ShortMode = true;
                        Seekbar2Length(seekBar);
                    });
                    alertDialog.SetButton2(Resources.GetString(Resource.String.cancle), (s, a) =>
                    {
                        ShortMode       = false;
                        isShort.Checked = false;
                        Seekbar2Length(seekBar);
                    });
                    alertDialog.Show();
                }
                else
                {
                    ShortMode = false;
                    Seekbar2Length(seekBar);
                }
            };

            randomStr.Click += (sender, e) =>
            {
                char[] CharPool = new char[passLength + 5];
                for (int loop = 0; loop < passLength; loop++)
                {
                    CharPool[loop] = Int2Char(RandomInt(isHard.Checked));
                }
                string str = new string(CharPool);

                var alertDialog = new Android.App.AlertDialog.Builder(this).Create();
                alertDialog.SetTitle(Resources.GetString(Resource.String.alert_title));
                alertDialog.SetMessage(str);
                alertDialog.SetButton(Resources.GetString(Resource.String.ok), (s, a) => { });
                alertDialog.SetButton2(Resources.GetString(Resource.String.copy_to_clipboard), async(s, a) =>
                {
                    await Clipboard.SetTextAsync(str);
                });
                alertDialog.Show();
            };
        }