protected override void UpdateDetailDisplay(View cell) { if (cell == null) { return; } TextView label; EditText _entry; DroidResources.DecodeStringEntryLayout(Context, cell, out label, out _entry); if (_entry == null) { return; } if (_entry.Text != Value) { _entry.Text = Value; } if (_entry.Hint != Hint) { _entry.Hint = Hint; } var inputType = KeyboardType.InputTypesFromUIKeyboardType(); if (Password) { inputType |= InputTypes.TextVariationPassword; } if (IsEmail) { inputType |= AndroidDialogEnumHelper.KeyboardTypeMap[UIKeyboardType.EmailAddress]; } if (Numeric) { inputType |= AndroidDialogEnumHelper.KeyboardTypeMap[UIKeyboardType.DecimalPad]; } if (Lines > 1) { inputType |= InputTypes.TextFlagMultiLine; _entry.SetLines(Lines); } else if (Send != null) { _entry.ImeOptions = ImeAction.Go; _entry.SetImeActionLabel("Go", ImeAction.Go); } else { _entry.ImeOptions = ReturnKeyType.ImeActionFromUIReturnKeyType(); } _entry.InputType = inputType; }
public FormModel(int postion, string textFieldValue, string indicatorText, FieldType fieldType, ReturnKeyType returnKeyType, string[] buttonText = null, Action buttonAction = null, string keyboardButtonText = "", Action submitKeyboardButton = null) { Position = postion; TextFieldValue = textFieldValue; IndicatorText = indicatorText; ButtonText = buttonText; ButtonAction = buttonAction; FieldType = fieldType; ReturnKeyType = returnKeyType; KeyboardButtonText = keyboardButtonText; SubmitKeyboardButtonAction = submitKeyboardButton; }
public override View GetView(Context context, View convertView, ViewGroup parent) { TextView label; var view = DroidResources.LoadStringEntryLayout(context, convertView, parent, LayoutId, out label, out _entry); if (view != null) { view.FocusableInTouchMode = false; view.Focusable = false; view.Clickable = false; _entry.FocusableInTouchMode = true; _entry.Focusable = true; _entry.Clickable = true; _entry.Text = Value; _entry.Hint = Hint; _entry.InputType = KeyboardType.InputTypesFromUIKeyboardType(); if (Password) { _entry.InputType |= InputTypes.TextVariationPassword; } if (Lines > 1) { _entry.InputType |= InputTypes.TextFlagMultiLine; _entry.SetLines(Lines); } else if (Send != null) { _entry.ImeOptions = ImeAction.Go; _entry.SetImeActionLabel("Go", ImeAction.Go); } else { _entry.ImeOptions = ReturnKeyType.ImeActionFromUIReturnKeyType(); } if (_entry.Tag == null) { _entry.Tag = this; _entry.AddTextChangedListener(this); } else if (_entry.Tag != this) { _entry.RemoveTextChangedListener((ITextWatcher)_entry.Tag); _entry.AddTextChangedListener(this); if (Send != null) { _entry.EditorAction += _entry_EditorAction; } } _entry.OnFocusChangeListener = this; if (label == null) { _entry.Hint = Caption; } else { label.Text = Caption; } } return(view); }
internal static extern void elm_entry_input_panel_return_key_type_set(IntPtr obj, ReturnKeyType keyType);
protected override void UpdateDetailDisplay(View cell) { if (cell == null) { return; } TextView label; EditText _entry; DroidResources.DecodeStringEntryLayout(Context, cell, out label, out _entry); if (_entry == null) { return; } if (_entry.Text != Value) { _entry.Text = Value; } if (_entry.Hint != Hint) { _entry.Hint = Hint; } var inputType = KeyboardType.InputTypesFromUIKeyboardType(); if (Password) { inputType |= InputTypes.TextVariationPassword; } if (IsEmail) { inputType |= AndroidDialogEnumHelper.KeyboardTypeMap[UIKeyboardType.EmailAddress]; } if (Numeric) { inputType |= AndroidDialogEnumHelper.KeyboardTypeMap[UIKeyboardType.DecimalPad]; } if (NoAutoCorrect) { inputType |= AndroidDialogEnumHelper.KeyboardTypeMap[UIKeyboardType.NoAutoCorrect]; } if (Lines > 1) { inputType |= InputTypes.TextFlagMultiLine; if (_entry.LineCount != Lines) { _entry.SetLines(Lines); } } else if (Send != null) { if (_entry.ImeOptions != ImeAction.Go) { _entry.ImeOptions = ImeAction.Go; _entry.SetImeActionLabel("Go", ImeAction.Go); } } else { var imeOptions = ReturnKeyType.ImeActionFromUIReturnKeyType(); if (_entry.ImeOptions != imeOptions) { _entry.ImeOptions = imeOptions; } } if (_entry.InputType != inputType) { _entry.InputType = inputType; } //android can't seem to find the correct NextFocusDown if items are added dynamically, we'll catch the next/previous ourselves _entry.EditorAction += (sender, args) => { if (args.ActionId == ImeAction.Next || (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Honeycomb && args.ActionId == ImeAction.Previous)) { ViewGroup group = _entry.Parent as ViewGroup; IViewParent currentLoop = _entry.Parent; while (currentLoop != null) { currentLoop = currentLoop.Parent; if (currentLoop is ViewGroup) { group = (ViewGroup)currentLoop; } } var focus = FocusFinder.Instance.FindNextFocus(group, _entry, args.ActionId == ImeAction.Next ? FocusSearchDirection.Down : FocusSearchDirection.Up); if (focus != null) { focus.RequestFocus(); focus.RequestFocusFromTouch(); } } }; }