Red*_*oup 22 navigation android parent-child
我有一个应用程序,可以从不同的活动中多次调用一个活动.因此,我试图在此活动的操作栏中实现"后退按钮".为此我使用:
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
和:
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="view.TweetsIndividuoActivity" />
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我不能将父活动设置为我的android清单,因为,我不知道谁是这个活动的父亲.
解决办法是什么 ?
谢谢
Dam*_*tla 38
它比你想象的容易.
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
方法finish()将破坏您的活动并显示启动它的那个.如果我理解你的话,那就是你想要的.
您当前的解决方案适用于您希望每次都返回同一父级的情况,例如Gmail应用程序.当您从通知中打开电子邮件然后按操作栏后退按钮时,它将无法导航回到主屏幕,但会显示Gmail收件箱.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
您将始终返回启动新活动的活动.
无需使用以下代码.
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="view.TweetsIndividuoActivity" />
Run Code Online (Sandbox Code Playgroud)