public Dialog Build(Activity activity, LoginConfig config) { var txtUser = new EditText(activity) { Hint = config.LoginPlaceholder, InputType = InputTypes.TextVariationVisiblePassword, Text = config.LoginValue ?? String.Empty, }; txtUser.SetFilters(new[] { new InputFilterLengthFilter(40) }); // ユーザーID 40文字 txtUser.SetSingleLine(true); var txtPass = new EditText(activity) { Hint = config.PasswordPlaceholder ?? "*", InputType = InputTypes.TextVariationPassword }; txtPass.SetFilters(new[] { new InputFilterLengthFilter(16) }); // パスワード 16文字 txtPass.SetSingleLine(true); PromptBuilder.SetInputType(txtPass, InputType.Password); var layout = new LinearLayout(activity) { Orientation = Orientation.Vertical }; txtUser.SetMaxLines(1); txtPass.SetMaxLines(1); layout.AddView(txtUser, ViewGroup.LayoutParams.MatchParent); layout.AddView(txtPass, ViewGroup.LayoutParams.MatchParent); return(new AlertDialog.Builder(activity, config.AndroidStyleId ?? 0) .SetCancelable(false) .SetTitle(config.Title) .SetMessage(config.Message) .SetView(layout) .SetPositiveButton(config.OkText, (s, a) => config.OnAction(new LoginResult(true, txtUser.Text, txtPass.Text)) ) .SetNegativeButton(config.CancelText, (s, a) => config.OnAction(new LoginResult(false, txtUser.Text, txtPass.Text)) ) .Create()); }