我正在研究一些应用程序,我希望实现与Gmail应用程序一样的访问应用程序主活动的相同模式。下面是从Android Developer site图片:通过从小部件开始的子活动导航到主活动
基本上我已经做了约点击之类的东西的一切,当我按下home键或后退按钮硬件问题。第一个(主页按钮)在onOptionsItemSelected中启动代码,但对于第二个(后退硬件按钮),我不知道如何覆盖它。以下是我尝试实现与Gmail应用程序相同模式的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
对此有任何帮助将不胜感激。
编辑:由于mansoulx和杰克,可以用onBackPresed()方法覆盖硬件按钮动作。问题的一部分已经解决,但我仍然没有弄清楚如何使用Intents实现与Gmail应用程序相同的模式。编辑2:我实现了与Android Developer site相同的代码,但它仍然不起作用。我添加了对该代码的IF语句的否定,然后想要的模式开始工作,但是出现了错误的动画(从多任务菜单中更改应用程序时使用的动画)。我不认为这是对的,所以我仍在寻求帮助。这是我使用的代码(无否定):
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
TaskStackBuilder.create(this).addNextIntentWithParentStack(upIntent).startActivities();
} else {
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
return super.onOptionsItemSelected(item);
}
记得删除**如果你想使用onBackPressed()超级** – ymerdrengene 2014-09-10 13:25:33
我实现了代码“与浏览了一个新的后退堆栈“并且它仍然不起作用。请看看我的编辑2. – user1257255 2014-09-10 15:43:52
我编辑了我的答案 – konmik 2014-09-15 11:02:50