我正在尝试在Android应用程序上实现良好的Up导航。
例如,我想从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
。但是,如果
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
您是否有解决我问题的想法?
非常感谢您的时间
编辑
父活动需要在运行时指定。实际上,父活动可以是
ActivityA
,ActivityB
或ActivityC
。让我更好地解释这个问题。我的应用程序管理电视节目。我有一个
MainActivty
,一个TVShowActivity
,一个SeasonActivity
和一个EpisodeActivity
。在每个活动的导航抽屉中,我希望能够跳转到父活动:
-在
EpisodeActivity
上,我想转到SeasonActivity
,TVShowActivity
或MainActivity
;-在
SeasonActivity
上,我要进入TVShowActivity
或MainActivity
;-在
TVShowActivity
上,我要转到MainActivity
。如果我的活动堆栈类似于:
MainActivty
=> TVShowActivity
=> SeasonActivity
=> EpisodeActivity
,则我的应用当前可以正常工作。问题在于,有时用户可以直接从
EpisodeActivity
到达MainActivity
,而我希望能够使用相同的导航模式。 最佳答案
在每个活动上,您可以保留两个按钮,例如,两个按钮在其xml属性中提供onclick事件,并在java类中提供意图代码:
`public void youronclickname(View v)
{
Intent myintent = new Intent(您的源类,到目标类);
startActivity(myintent);
}'
同样地在下一堂课上尝试