- 想攔截所有情況下的按鍵:
</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;
}