Exemple #1
0
        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;
        }
Exemple #2
0
 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;
 }
Exemple #3
0
        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);
        }
Exemple #4
0
 internal static extern void elm_entry_input_panel_return_key_type_set(IntPtr obj, ReturnKeyType keyType);
Exemple #5
0
        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();
                    }
                }
            };
        }