【发布时间】:2020-10-20 16:56:32
【问题描述】:
当我从主要活动中移动另一个活动时,我希望在操作栏上需要返回按钮。请帮助我现在该怎么做。
我是android开发的新手,请详细说明一下。
谢谢。
【问题讨论】:
-
使用
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
当我从主要活动中移动另一个活动时,我希望在操作栏上需要返回按钮。请帮助我现在该怎么做。
我是android开发的新手,请详细说明一下。
谢谢。
【问题讨论】:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
只需在[CurrentActivity].java 文件的onCreate 方法中添加代码即可。
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
这行代码只会在你的Action Bar 中添加一个后退按钮,但现在点击它之后什么都不会发生。
并将其添加到您的[CurrentActivity].java,这将添加该按钮的工作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(CurrentActivity.this, MainActivity.class);
startActivity(intent);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
并将CurrentActivity 替换为您的活动名称,并将MainActivity 替换为您在按下返回按钮后要发送给用户的活动
【讨论】:
你可以这样做。在您的 AndroidManifest.xml 文件中,您可以告诉您的活动,他的父活动是什么。这里MainActivity是SecondActivity的父Activity。 SecondActivity 将具有返回按钮,按下该按钮会将用户带到 MainActivity。
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"
android:parentActivityName=".MainActivity"/>
【讨论】:
在操作栏上显示 Android 系统后退按钮..
如果您使用的是androidx 库,那么最好使用
supportActionBar 而不是 Kotlin 中的 actionBar
显示和处理 Android 系统返回按钮的完整代码:
supportActionBar?.apply {
setDisplayHomeAsUpEnabled(true)
title = "SET YOUR ACTIVITY TITLE"
}
单击系统后退箭头按钮时如何关闭 Activity:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
android.R.id.home -> finish()
}
return super.onOptionsItemSelected(item)
}
【讨论】:
您可以通过在 Android Manifest 文件中提及父 Activity 来启用 Activity 栏中的后退按钮。例如,我必须在我的项目中的 AddNotes 活动的活动栏中启用后退按钮栏。当用户单击时,它应该将用户重定向到主活动,因此在 Android 清单文件中,我将这样的父活动设置为 AddNotes 活动。
<activity android:name=".AddNotes" android:parentActivityName=".MainActivity"></activity>
它将在添加笔记活动的活动栏中启用后退按钮。
或者,如果您也可以像这样在活动栏中启用后退按钮,
val actionbar = supportActionBar
actionbar!!.title = "Add Note"
actionbar.setDisplayHomeAsUpEnabled(true)
actionbar.setDisplayHomeAsUpEnabled(true)
(此代码为 Kotlin 代码)
更多知识请参考: https://developer.android.com/training/appbar/up-action
【讨论】: