【发布时间】:2015-08-14 05:58:31
【问题描述】:
我需要从一个页面导航到其对应的上一页(我的应用程序中的当前页面有多个上一页)。如何使用向上导航/后退按钮实现它。
【问题讨论】:
标签: android back-button up-navigation
我需要从一个页面导航到其对应的上一页(我的应用程序中的当前页面有多个上一页)。如何使用向上导航/后退按钮实现它。
【问题讨论】:
标签: android back-button up-navigation
在 Manifest 文件中设置父级,然后在 Activity 上设置
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
或者你可以打电话给finish()而不是
NavUtils.navigateUpFromSameTask(this)
【讨论】:
【讨论】:
在活动上,默认情况下使用后退按钮返回上一个,但没有向上按钮。如果你想起来,把 Manifest 放进去:
android:parentActivityName=".MainActivity"
关于片段:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.addToBackStack("Tag");
. . .
【讨论】:
您可以在清单中指定父活动
从 Android 4.1(API 级别 16)开始,您可以通过在元素中指定 android:parentActivityName 属性来声明每个活动的逻辑父级
如果您的应用支持 Android 4.0 及更低版本,请在您的应用中包含支持库并在 .然后将父活动指定为 android.support.PARENT_ACTIVITY 的值,匹配 android:parentActivityName 属性。
例如:
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- The meta-data element is needed for versions lower than 4.1 -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
</application>
通过以这种方式声明父 Activity,您可以使用 NavUtils API 通过识别哪个 Activity 是每个 Activity 的适当父 Activity 来合成新的返回堆栈。
您可以参考How to implement the Android ActionBar back button? 在您的活动中实施 UpNavigation
希望对你有帮助。
【讨论】: