猿问

我可以覆盖应用程序中的“主页”按钮吗?

我想在我的android上创建自己的“主页”屏幕,我想从我的应用程序中调用该主屏幕。

如何覆盖“主页”按钮,以便在按下时应用程序将重定向到我的主屏幕而不是默认的主屏幕?是否可以覆盖主页按钮?


烙印99
浏览 352回答 3
3回答

慕尼黑的夜晚无繁华

覆盖以下方法。@Overridepublic void onAttachedToWindow(){      Log.i("TESTE", "onAttachedToWindow");    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);    super.onAttachedToWindow();  }使用此方法,HOME按钮在此活动中停止工作(仅此活动)。然后你重新实现,因为它是一个普通的按钮事件(例如后退按钮)。public boolean onKeyDown(int keyCode, KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_HOME) {        Log.i("TESTE", "BOTAO HOME");        return true;    }    return super.onKeyDown(keyCode, event);    }

慕虎7371278

在 AndroidManifest.xml<activity&nbsp; &nbsp; ...&nbsp; &nbsp; android:launchMode="singleTask">&nbsp; &nbsp; <intent-filter>&nbsp; &nbsp; &nbsp; &nbsp; <action android:name="android.intent.action.MAIN" />&nbsp; &nbsp; &nbsp; &nbsp; <category android:name="android.intent.category.LAUNCHER" />&nbsp; &nbsp; &nbsp; &nbsp; <category android:name="android.intent.category.HOME" />&nbsp; &nbsp; &nbsp; &nbsp; <category android:name="android.intent.category.DEFAULT" />&nbsp; &nbsp; &nbsp; &nbsp; ....&nbsp; &nbsp; </intent-filter></activity>您需要launchMode="singleTask"将意图传递给已在运行的应用程序,而不是创建新实例。在活动中:&nbsp; &nbsp;@Override&nbsp; &nbsp; protected void onNewIntent(Intent intent) {&nbsp; &nbsp; &nbsp; &nbsp; super.onNewIntent(intent);&nbsp; &nbsp; &nbsp; &nbsp; if (Intent.ACTION_MAIN.equals(intent.getAction())) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Log.i("MyLauncher", "onNewIntent: HOME Key");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }你没有得到关键事件
随时随地看视频慕课网APP

相关分类

Android
我要回答