ActionBar导航图标点击无响应,请求实现返回MainActivity功能
解决ActionBar返回图标点击无响应的问题
嘿,我懂你现在的困扰——ActionBar上的返回图标明明显示出来了,可点击后完全没反应,连onNavigationIconClick都没触发。这是因为你只开启了返回图标的显示,但没给它绑定对应的点击逻辑。别担心,我帮你把代码补上,实现点击跳转到MainActivity的功能:
完整修改后的代码
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tab1gridlatestvideos); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayOptions(actionBar.getDisplayOptions() | ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle("Latest Videos"); } @Override public boolean onOptionsItemSelected(MenuItem item) { // 监听ActionBar返回图标的点击事件 if (item.getItemId() == android.R.id.home) { // 创建跳转到MainActivity的Intent Intent intent = new Intent(this, MainActivity.class); startActivity(intent); // 如果不需要当前Activity留在返回栈里,可以调用finish()关闭它 finish(); return true; // 表示事件已处理,无需再传递 } return super.onOptionsItemSelected(item); }
关键说明
- ActionBar的返回图标(HomeAsUp图标)的点击事件,默认会触发
onOptionsItemSelected方法,对应的Item ID是android.R.id.home,所以我们只需要在这个方法里判断并处理跳转逻辑即可。 - 如果你更倾向于使用
onNavigationIconClick的方式,那可以手动给ActionBar设置导航点击监听器,代码如下:
不过通常用actionBar.setNavigationOnClickListener(v -> { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); });onOptionsItemSelected的方式更符合Android的默认规范哦。
另外,记得确认MainActivity已经在你的AndroidManifest.xml中正确注册了,不然跳转可能会报错~
内容的提问来源于stack exchange,提问作者Dinesh Kumar
相关产品推荐
相关产品推荐

