As is typical with questions that I ask, I found the answer soon after posting.
The answer was to create a character map. So, I have this line in my OnCreate: mKMap = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD); and this line in my OnKeyDown int c = mKMap.get(keyCode, (mToggleAlt ? KeyEvent.META_ALT_ON : 0)); and I get what I need. Thanks, Mike On Nov 22, 1:22 am, Secretly Mike Young <[EMAIL PROTECTED]> wrote: > Hi there, > > I'm trying to use OnKeyDown to find out what key was pressed; however, > when I want, say *, it always returns 8 (or rather KeyEvent.KEYCODE_8, > or I can use any one of a number of KeyEvent methods to get the > unicode value for 8, but not *). > > If I press Alt then 8, I'll get the key down for Alt, but when I press > 8, neither isAltPressed nor getMetaState indicate that the Alt was > pressed. Nonetheless, in a text field, this will give me a *, but in > my app, I get an 8. > > Do I need to manually keep track of whether the Alt key was pressed > and then map the non-alt key to the alt-key value? That seems wrong, > since it's possible that future phones might not have the same > keyboard layout. Even the keyboard layout of the emulator and the G1 > don't exactly match. My emulator has /? to the right of the space > key, but my G1 has ./ > > If you need example code: > > public boolean onKeyDown(int keyCode, KeyEvent msg) { > switch (keyCode) { > case KeyEvent.KEYCODE_0: > case KeyEvent.KEYCODE_1: > case KeyEvent.KEYCODE_2: > case KeyEvent.KEYCODE_3: > case KeyEvent.KEYCODE_4: > case KeyEvent.KEYCODE_5: > case KeyEvent.KEYCODE_6: > case KeyEvent.KEYCODE_7: > case KeyEvent.KEYCODE_8: > case KeyEvent.KEYCODE_9: > AppendNumber(keyCode - KeyEvent.KEYCODE_0); > return true; > case KeyEvent.KEYCODE_STAR: //this never gets called because > I'm always getting KEYCODE_8. > AppendOp("*"); > return true; > } > > return false; > } > > Note that I've tried it with getting the code from msg with no luck. > Any help? > > Thanks, > > Mike --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---