You are mixing physical key codes (which is what is delivered in KeyEvent
objects) with generated characters.  You really don't want to do that,
because keyboards in different devices will have different (perhaps
radically different) key layouts.

Plus since there is no "tab key" in the G1, I think the idea of intercepting
it is a bit questionable.  If you just want to prevent tab characters from
being put into the text view, there are various APIs on it that you can use
to monitor changes happening to the text view -- see
addTextChangedListener().  I don't know if you can stop the edit from
happening, though, so you may have to revert things you don't want.

Also note that when we introduce soft input methods in the near future, the
user will be able to edit in a text view without there being any key events
generated at all...

On Tue, Dec 16, 2008 at 6:41 PM, Keith Wiley <kbwi...@gmail.com> wrote:

>
> I would like to intercept the tab key in an EditText.  I derived a new
> class from EditText and implemented the OnKeyListener interface.  I
> look for event.getAction() == KeyEvent.ACTION_DOWN && keyCode ==
> KeyEvent.KEYCODE_TAB, but here is what happens:
>
> user presses alt -> action down / keycode alt
> user releasees alt -> action up / keycode alt
> user presses q -> action down / keycode q
> user releases q -> action up / keycode q
>
> So, a tab character is never intercepted by OnKeyListener...yet a tab
> will ultimately be deliver to the EditText, so I failed to intercept
> it.  Next thing I did was implement my OnKeyListener differently.
> Instead of look for key down and keycode tab I look for key down,
> event alt pressed, and keycode q, as in:
>
> user pressed alt -> action down / keycode alt
> user presses q -> action down / event.altpressed true / keycode q
> user releases q
> user releases alt
>
> This implementation successfully intercepts an action where the user
> presses and holds alt while pressing q, which would ordinarily deliver
> a tab to the EditText, so that's great, that worked, I intercepted the
> tab.
>
> ...but there's two problems with relying on this approach (looking for
> key down, alt pressed, and keycode q).  First, it still lets the other
> kind of tab through to the EditText and I want to intercept those tabs
> too.  Second, I assume there is no guarantee that on other hardware
> besides the G1 that the tab will correspond to an alt-q in the first
> place, so hard-coding such a test seems inappropriate.
>
> What is the solution to this problem?
>
> Thank you.
>
> Cheers!
> >
>


-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to