覆盖后退按钮

3

我这里有一个代码,用来覆盖“返回”按钮并使其像“主页”按钮一样起作用:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

它正常运行。我的问题是,是否有一个位置可以将它放置以使其适用于所有活动。目前,我在每个活动中都复制了此方法。


1
这样做不是一个好主意。用户会感到困惑。 - Michał Z.
4个回答

3

创建一个基础Activity,在那里处理按键事件,然后从你的基础Activity继承所有其他的Activity。


@Ascorbin,我需要更快地打字 :) - paulkayuk

3
创建一个BaseActivity(继承Activity)并使用此代码,然后让所有的Activities都继承自BaseActivity,而不是Activity。

3

创建自己的BaseActivity并将其扩展为Activity,然后在其中覆盖back方法。现在在整个应用程序中,不要使用Activity而是使用该BaseActivity。

就像这样:

public abstract class BaseActivity extends Activity 
{
    final protected void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    onCreate_Impl(savedInstanceState);
   }

   abstract protected void onCreate_Impl(Bundle savedInstanceState);
}    

你需要使用onCreate_Impl替换onCreate。

1
你可以创建一个抽象类,它扩展了Activity并实现了这个方法。 然后在应用程序的每个Activity中进行子类化。一次只能扩展一个类,但在大多数情况下,拥有一些抽象Activity类包含一些公共函数对于一组应用程序活动是一个好主意。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接