我正在尝试在我的Android应用上实现良好的向上导航。
例如,我想从DetailsActivity
转到MasterActivity
。为此,我使用以下代码:
final Intent upIntent = new Intent(this, MasterActivity.class);
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
supportNavigateUpTo(upIntent);
如果MasterActivity
已在后台打开,则效果很好:它会关闭当前活动(以及堆栈中MasterActivity
上的所有活动)并触发onNewIntent
上的方法MasterActivity
{1}}。
但是,如果MasterActivity
不在堆栈中,则该方法只会关闭DetailsActivity
并且不会发生任何其他事情。
我想要实现的是,如果MasterActivity
不在堆栈中,则当前的aActivity将被关闭,并创建一个新的MasterActivity
实例。
我已经尝试过以下标志组合,但没有成功:
Intent.FLAG_ACTIVITY_SINGLE_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
您对如何解决我的问题有任何想法吗?
非常感谢你的时间
修改
需要在运行时指定父Activity。实际上,父活动可以是ActivityA
,ActivityB
或ActivityC
。
让我更好地解释这个问题。我的应用管理电视节目。我有MainActivty
,TVShowActivity
,SeasonActivity
和EpisodeActivity
。
在每个活动的导航抽屉中,我希望能够跳转到父活动:
-On EpisodeActivity
我想转到SeasonActivity
,TVShowActivity
或MainActivity
;
-On SeasonActivity
我想TVShowActivity
或MainActivity
;
-On TVShowActivity
我想转到MainActivity
。
我的应用程序当前有效,如果我的活动堆栈类似于:MainActivty
=> TVShowActivity
=> SeasonActivity
=> EpisodeActivity
。
问题是,有时用户可以直接从EpisodeActivity
到达MainActivity
,我希望能够使用相同的导航模式。
答案 0 :(得分:-1)
在每个活动中,您可以保留两个按钮,在其xml的属性中提供onclick事件,并在java类中提供intent代码:
`public void youronclickname(View v) { Intent myintent = new Intent(你的源类,到目标类); startActivity(myintent); ''
同样尝试下一堂课