2016-02-11 3 views
1

При нажатии клавиши на мой пользовательский вид, OnKeyPress называется:Преобразовать Keycode обугливаться в Xamarin.Android

public DrawView(Context context, IAttributeSet attributeSet) : base(context, attributeSet) 
{ 
     KeyPress += OnKeyPress; 
} 

private void OnKeyPress(object sender, KeyEventArgs e) 
{ 
     Keycode code = e.KeyCode; 
     // How to convert to char? 
} 

Как я преобразовать Keycode в полукокса? Например:

"Space" -> " " 
"Enter" -> "\n" 
"A"  -> "A" 

ответ

2

попробовать что-то вроде этого:

public override bool OnKeyUp (Keycode keyCode, KeyEvent e) 
{ 
    char keyPressed = (char) e.GetUnicodeChar(); 
    Log.Debug (string.Format ("On KeyUp is:{0}", keyPressed)); 
    return base.OnKeyUp (keyCode, e); 
} 
+0

Ваш код не является полностью действительным, так как событие KeyPress принимает KeyEventArgs как параметр. Не KeyEvent. –

+0

@SteffanPallesen: Я просто сделал образец, чтобы поделиться идеей. Ну, я не очень хорошо разбираюсь в кодах. Но логика правильная. – Vaikesh

1

На основании ответа Vaikesh, это решение:

private void OnKeyPress(object sender, KeyEventArgs e) 
{ 
    char c = Convert.ToChar(e.UnicodeChar); 
} 
Смежные вопросы