Android 消除航海疑虑
我在我的应用程序中实现了,在屏幕上显示信息“向上导航”。但是,当我在操作栏上单击带有箭头的图标时,它并不是一种返回效果,就像我单击返回箭头Smarthphone本身一样,而是一种好像我开始了一项新活动的效果。我想知道是否有人能帮我解决这个疑问 我的代码:Android 消除航海疑虑,android,Android,我在我的应用程序中实现了,在屏幕上显示信息“向上导航”。但是,当我在操作栏上单击带有箭头的图标时,它并不是一种返回效果,就像我单击返回箭头Smarthphone本身一样,而是一种好像我开始了一项新活动的效果。我想知道是否有人能帮我解决这个疑问 我的代码: @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case andro
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// é aqui que você volta para a activity ou fragment anterior
Intent parentActivityIntent = new Intent(this, MainActivity.class);
// Remove todas as outras activitys que estão na pilha
parentActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(parentActivityIntent);
finish();
break;
}
return super.onOptionsItemSelected(item);
}
此按钮的操作可以在
onOptionItemSelected()
你可以找到它的id为android.R.id.home
你可以采取的行动
if(item.getItemId()==android.R.id.home)
{
//Your action
}
在新任务中,您正在开始一个新的意图,这就是为什么系统动画与按“后退”时不同的原因 您已经正确设置了home(主页)按钮,因为当您按下up(向上)按钮时,会在
OnOptions ItemSelected
中收到android.R.id.home
事件
您应该在清单中添加android:parentActivityName
属性(API 16+请参阅下面的开发人员文档链接以了解向后兼容性)
这会将您当前的活动与父级关联。您还需要使用类来执行正确的onClick操作,以navigateUpFromSameTask(this)
,其中this
是您当前的活动
明确了如何正确实施up;如果遵循规定的模式,将免费提供返回过渡效果
另外,在代码中,您应该
返回true
,而不是break
(因为您不在循环中,所以这不会起任何作用)。返回true
表示您已经处理了事件,onOptionsItemSelected
您是如何实现它的?通常,对于“向上”导航,您需要在清单中指定父活动。我的疑问是不能实现。这是当我点击向上导航,回到以前的活动,好像他已经开始了一个新的。我想知道,当您返回系统时,淡入的效果如何处理转换,这取决于您的实现方式。请编辑您的问题,以包含显示如何实现的代码。准备好了!我编辑了代码,可能是这样实现的。如果以编程方式设置操作,OP会遇到问题的是//您的操作
位。好的,可能是我无法理解这一点。我如何实现以获得返回效果?