我有一个活动MyActivity
,其工具栏中实现了标准的向上按钮(屏幕左上角的左箭头)。
此活动的独特之处在于,用户可以从我的应用程序中的多个活动中导航到该活动。
我需要这个“向上”按钮来定向用户所来自的活动(与Android“后退”按钮的行为相同)。
相反,由于AndroidManifest.xml
中的以下代码,即使用户不是立即从那里来,它也总是直接返回到Home活动:
<activity
android:name="com.myapp.activity.MyActivity"
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.myapp.activity.Home"
/>
如何覆盖此行为,以便MyActivity
的“向上”按钮使用户返回到他来自的活动,而不总是回到“主页”活动?
答案 0 :(得分:1)
首先,用此代码替换您的代码。
<activity
android:name=".MyActivity">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
第二,在“ MyActivity”类中添加一些代码。
1.在onCreate()方法中,添加该行。
getActionBar().setDisplayHomeAsUpEnable(true);
2。实现onOptionItemSelected(),添加几行。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
super.onBackPressed();
}
return super.onOptionsItemSelected(item);
}
希望它能起作用!
答案 1 :(得分:0)
如果您不想参加家庭活动,只需删除声明父活动的元数据即可。
<activity android:name="com.myapp.activity.MyActivity" />
或者您可以使用工具栏的onNavigationClick来定义您自己的后退操作:
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//if you want to go one activity back then put onBackPressed() method
onBackPressed();
}
});
答案 2 :(得分:-1)
替换为:
<activity
android:name=".MyActivity"
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>