private void keyDown(Keycode arg, KeyEvent e)
        {
            Key    key    = AndroidKeyboardHandler.GetKeyCodeAsKey(arg);
            string keynum = arg.ToString();
            bool   upper  = e.IsShiftPressed;

            if (keynum.StartsWith(Keycode.Num.ToString()))
            {
                switch (keynum.Last())
                {
                case '1':
                    pending = upper ? "!" : "1";
                    return;

                case '2':
                    pending = upper ? "@" : "2";
                    return;

                case '3':
                    pending = upper ? "#" : "3";
                    return;

                case '4':
                    pending = upper ? "$" : "4";
                    return;

                case '5':
                    pending = upper ? "%" : "5";
                    return;

                case '6':
                    pending = upper ? "^" : "6";
                    return;

                case '7':
                    pending = upper ? "&" : "7";
                    return;

                case '8':
                    pending = upper ? "*" : "8";
                    return;

                case '9':
                    pending = upper ? "(" : "9";
                    return;

                case '0':
                    pending = upper ? ")" : "0";
                    return;

                default:
                    pending = "" + keynum.Last();
                    return;
                }
            }

            if (upper)
            {
                char toAdd;
                switch (arg)
                {
                case Keycode.Grave:
                    toAdd = '~';
                    break;

                case Keycode.Minus:
                    toAdd = '_';
                    break;

                case Keycode.Equals:
                    toAdd = '+';
                    break;

                case Keycode.LeftBracket:
                    toAdd = '{';
                    break;

                case Keycode.RightBracket:
                    toAdd = '}';
                    break;

                case Keycode.Backslash:
                    toAdd = '|';
                    break;

                case Keycode.Apostrophe:
                    toAdd = '"';
                    break;

                case Keycode.Semicolon:
                    toAdd = ':';
                    break;

                case Keycode.Slash:
                    toAdd = '?';
                    break;

                case Keycode.Period:
                    toAdd = '>';
                    break;

                case Keycode.Comma:
                    toAdd = '<';
                    break;

                default:
                    toAdd = e.DisplayLabel;
                    break;
                }

                pending += toAdd;
            }
            else
            {
                pending += e.DisplayLabel.ToString().ToLower();
            }
        }
Пример #2
0
        private void keyDown(Keycode arg, KeyEvent e)
        {
            Key    key    = AndroidKeyboardHandler.GetKeyCodeAsKey(arg);
            string keynum = arg.ToString();
            bool   upper  = e.IsShiftPressed;

            if (keynum.StartsWith(Keycode.Num.ToString()))
            {
                switch (keynum.Last())
                {
                case '1':
                    pending = upper ? "!" : "1";
                    return;

                case '2':
                    pending = upper ? "@" : "2";
                    return;

                case '3':
                    pending = upper ? "#" : "3";
                    return;

                case '4':
                    pending = upper ? "$" : "4";
                    return;

                case '5':
                    pending = upper ? "%" : "5";
                    return;

                case '6':
                    pending = upper ? "^" : "6";
                    return;

                case '7':
                    pending = upper ? "&" : "7";
                    return;

                case '8':
                    pending = upper ? "*" : "8";
                    return;

                case '9':
                    pending = upper ? "(" : "9";
                    return;

                case '0':
                    pending = upper ? ")" : "0";
                    return;

                default:
                    pending = "" + keynum.Last();
                    return;
                }
            }

            switch (arg)
            {
            default:
                pending += upper ? e.DisplayLabel.ToString() : e.DisplayLabel.ToString().ToLower();
                break;
            }
        }