ActivityGroup返回键获取焦点处理

ActivityGroup的子Activity获取焦点处理可以把ActivityGroup的bodyView(放置子Activity的布局)设置为可聚焦:

android:focusable="true"

android:focusableInTouchMode="true"

然后再在OnCreate方法中

bodyView.requestFocus();

这就会进入这个ActivityGroup的每个子Activity时能够响应自己的OnKeyDown方法。

我们可以禁用子Activity的OnKeyDown方法即返回false

public boolean onKeyDown(int keyCode, KeyEvent event) {

        // 按下键盘上返回按钮
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Log.i("test", "购买界面的返回键");
            return false;
        } else {
            Log.i("test", "购买界面的返回键false");
            return super.onKeyDown(keyCode, event);
        }
    }

我们只需在ActivityGroup中继承OnKeyDown方法,根据子Activity的id处理每个子Activity的返回事件。

因为ActivityGroup和他的子activity对返回方法的优先级是一样的,而且该方法只有当前聚焦的View才能响应,所以我们可以禁用子Activity的OnKeyDown并且让他获得焦点将时间传递给ActivityGroup处理。

posted @ 2013-02-17 14:51  GreyWolf  阅读(309)  评论(0编辑  收藏  举报