- 想拦截所有情况下的按键:
</pre><pre name="code" class="java">@Override public boolean dispatchKeyEventPreIme(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN// && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { // doSth... return true; } return super.dispatchKeyEventPreIme(event); }
-
想处理子View不处理的按键:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
boolean handled = super.dispatchKeyEvent(event);
if (!handled)
{
if (event.getAction() == KeyEvent.ACTION_DOWN//
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
// doSth...
return true;
}
}
return handled;
}
3.想禁止IME处理,但只处理子View不处理的按键:
</pre><pre name="code" class="java">@Override
public boolean dispatchKeyEventPreIme(KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN//
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
return false;
}
return super.dispatchKeyEventPreIme(event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
boolean handled = super.dispatchKeyEvent(event);
if (!handled)
{
if (event.getAction() == KeyEvent.ACTION_DOWN//
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
// doSth...
return true;
}
}
return handled;
}