您的位置:首页 > 移动开发 > Android开发

Android按键拦截处理最佳实践范例(以Back事件为例)

2014-12-15 17:22 405 查看
想拦截所有情况下的按键:
</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;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  按键 android back key 拦截
相关文章推荐