如何使用活动显示的片段转到上一个活动

     2023-04-18     203

关键词:

【中文标题】如何使用活动显示的片段转到上一个活动【英文标题】:How can I go to previous activity with the fragment the activity was showing 【发布时间】:2014-10-20 23:28:37 【问题描述】:

我有两个活动,活动 A 和活动 B。现在活动 A 有 3 个Fragments,其中一个启动活动 B。当我按下操作栏按钮时,它返回到活动 A,但显示默认的 Fragment。我正在使用navUtils.navigateupFromSameTask 回到以前的Activity

如何让用户使用的最新Fragment 显示而不是用户第一次启动应用程序时显示的默认值?例如,当应用程序启动时,它会显示Fragment 一个。当用户转到Fragment 2 并从中启动活动 B 时,我想返回上一个显示片段 2 的活动

@Override
public boolean onOptionsItemSelected(MenuItem item)
    switch(item.getItemId())
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    
    return super.onOptionsItemSelected(item);

在我的 onCreate 方法中

if (savedInstanceState == null) 
    fragmentManager = getFragmentManager();
    fragment = new RadioSound();
    selectItem(0);

然后selectItem:

 private void selectItem(int position) 

    // update the main content by replacing fragments
 activeFrag = position;
 if(position == 0)
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
 
 else if(position == 1)
     if(conv == null)
     conv = new Conversations();
     fragmentManager.beginTransaction().replace(R.id.content_frame, conv).commit();
  else
     fragmentManager.beginTransaction().replace(R.id.content_frame, (new Preferences())).commit();
 
    // update selected item and title, then close the drawer
    mDrawerList.setItemChecked(position, true);
    setTitle(fragments[position]);
    mDrawerLayout.closeDrawer(mDrawerList);

【问题讨论】:

如何在 Activity A 中添加片段?通常androids片段管理器将处理恢复最后显示的片段。 @AndroidGuy 抱歉回复晚了,但我的互联网连接中断了一段时间。添加了添加片段的代码 @NehaShukla:嗨,我注意到您在编辑帖子时一直在添加内联代码跨度 (like this);这些仅适用于句子中的实际代码。此外,请确保在帖子中尽可能多地解决您可以找到的问题——诸如“提前致谢”和“请帮助”之类的内容不是必需的。谢谢! 【参考方案1】:

当您从活动 B 返回到活动 A 时,您会重新创建片段,因此它将始终显示您的片段 1 而不是您想要的片段 2。

您的问题是,您信任 savedInstanceState 来决定是否应该重新创建您的片段。但是,onSaveInstanceState() 仅在 Activity 被销毁时被调用,当您导航到下一个 Activity 时不会立即发生这种情况。

如果已经添加了片段,您应该在活动 A 的 onCreate() 方法中查询 FragmentManager,否则您将进行初始片段创建。为此,我会添加一个 TAG 以更好地找到您的片段。

private static final String FRAGMENT_TAG_CONVERSATION = "frag_conv";
...
fragmentManager.beginTransaction().replace(R.id.content_frame, conv, FRAGMENT_TAG_CONVERSATION).commit();

然后您可以检查,如果您已经添加了片段:

 if(fragmentManager.findFragmentByTag(FRAGMENT_TAG_CONVERSATION) == null))
     // only add it here

【讨论】:

当应用程序处于固定模式并且我注销时,会显示登录活动。但是,如果我点击后退按钮,它会转到上一个活动

】当应用程序处于固定模式并且我注销时,会显示登录活动。但是,如果我点击后退按钮,它会转到上一个活动【英文标题】:WhentheappisinpinnedmodeandIlogout,thesigninactivityisshown.But,ifIclickbackbutton,itgoestopreviousactivity【发布时间】:2022... 查看详情

如何通过操作栏中的后退按钮转到上一个片段? (科特林)

】如何通过操作栏中的后退按钮转到上一个片段?(科特林)【英文标题】:Howtogotothepreviousfragmentbybackbuttoninactionbar?(Kotlin)【发布时间】:2020-10-1817:16:57【问题描述】:我有两个片段,我想使用操作栏中的后退按钮在它们之间创... 查看详情

在活动中使用 OnBackPressed 方法的一个片段到另一个片段

】在活动中使用OnBackPressed方法的一个片段到另一个片段【英文标题】:OnefragmentToAnotherfragmentusingOnBackPressedmethodinactivity【发布时间】:2021-11-2301:52:10【问题描述】:我的问题很简单,当我按下返回按钮时,它将转到上一个片段,... 查看详情

导航到上一个活动

...我想自动导航回第二个屏幕而不单击任何按钮。请帮助我如何做到这一点。感谢您宝贵的时间。【问题讨论】:有点不清楚你想要什么。究竟什么会触发“导航回第二个屏 查看详情

从片段返回到上一个活动 onclick back button

...clickbackbutton【发布时间】:2015-05-2505:35:02【问题描述】:如何从片段返回到上一个活动?我不能在片段中覆盖这个函数或者有其他方法,帮助!@OverridepublicvoidonBackPressed()onBackPressed();【问题讨论】:您是否有 查看详情

将数据传递到上一个活动并使用相同的按钮移动到下一个(代码片段)

...击该按钮我想将一些数据发送到activity1并转到activity3。我使用以下方法成功地将数据从2传递到1:button1.setOnClickListener(newView.OnClickListener()@OverridepublicvoidonClick(Vi 查看详情

如何从地图上的多个标记中单击一个标记,然后使用标记的信息转到一个活动

】如何从地图上的多个标记中单击一个标记,然后使用标记的信息转到一个活动【英文标题】:Howtoclickamarkerfrommultiplemarkersonamapandthengotoaactivitywithinfoofthemarkers【发布时间】:2020-07-0719:02:53【问题描述】:我想在地图上创建多个... 查看详情

如何将值从一个活动传递到上一个活动

】如何将值从一个活动传递到上一个活动【英文标题】:Howtopassthevaluesfromoneactivitytopreviousactivity【发布时间】:2010-11-1014:33:23【问题描述】:如何将值从一个屏幕传递到其前一个屏幕?考虑这种情况:我有两个活动。第一个屏幕... 查看详情

带有 NavigationDrawer 的多个活动(不是片段)。如何显示当前选择的活动?

】带有NavigationDrawer的多个活动(不是片段)。如何显示当前选择的活动?【英文标题】:Multipleactivities(notfragments)withaNavigationDrawer.HowtoshowcurrentlyselectedActivity?【发布时间】:2015-02-0310:35:54【问题描述】:在决定我们将使用导航抽... 查看详情

我如何使用意图从列表视图转到下一个活动? [复制]

】我如何使用意图从列表视图转到下一个活动?[复制]【英文标题】:Howdoiuseintenttogotonextactivityfromlistview?[duplicate]【发布时间】:2018-07-1301:06:51【问题描述】:我创建了带有自定义适配器的列表视图,以将我的图像和文本加载到... 查看详情

关闭活动后如何刷新上一个片段?

】关闭活动后如何刷新上一个片段?【英文标题】:Howtorefreshpreviousfragmentafterclosinganactivity?【发布时间】:2014-12-1006:08:54【问题描述】:我有一个片段会引发一个活动,用户可以在其中插入一些细节。当用户终止填充数据时,活... 查看详情

如何在片段中使用与活动中不同的菜单?

】如何在片段中使用与活动中不同的菜单?【英文标题】:Howtousedifferentmenuinfragmentthaninactivity?【发布时间】:2016-11-1315:39:29【问题描述】:我想为我的主要活动创建一个菜单,并为包含在主要活动中的片段提供一个菜单。当片... 查看详情

如何在地图片段活动上显示按钮

】如何在地图片段活动上显示按钮【英文标题】:HowcanIshowbuttonovermapfragmentactivity【发布时间】:2020-09-2706:52:06【问题描述】:我在我的android项目中使用mapapi来捕获当前位置并在它成功捕获当前位置时标记我想要的位置,然后应... 查看详情

如何在所有活动和片段中使用 MediaPlayer 的单个实例?

】如何在所有活动和片段中使用MediaPlayer的单个实例?【英文标题】:HowtousesingleinstanceofMediaPlayeracrossallactivitiesandfragments?【发布时间】:2018-04-1012:57:51【问题描述】:我有几个显示来自SD卡的歌曲的活动和片段,当我点击其中任... 查看详情

当应用程序转到另一个活动时,从手机到bluno的蓝牙连接断开连接(代码片段)

...连接并重定向到其他活动,蓝牙连接就会断开连接。我该如何解决?谢谢。答案看一下这个库的例子,问题可能是如果你只是直接复制 查看详情

如何使用来自其他活动android的片段打开一个活动

】如何使用来自其他活动android的片段打开一个活动【英文标题】:howtoopenanactivitywithfragmentsfromanotheractivityandroid【发布时间】:2021-05-1517:24:06【问题描述】:这是主要活动的代码packagecom.example.login;importandroid.content.Intent;importandroid... 查看详情

每当从 sqlite 数据库中删除记录时,将活动导航到上一个并显示数据库中可用的记录

】每当从sqlite数据库中删除记录时,将活动导航到上一个并显示数据库中可用的记录【英文标题】:wheneverdeletetherecordfromsqlitedatabsenavigatetheactivitytopreviousanddisplaytherecordswhichavailableindatabse【发布时间】:2012-11-2309:02:12【问题描述... 查看详情

如何在 Fragment 实现中显示不同的活动?

】如何在Fragment实现中显示不同的活动?【英文标题】:HowtoshowdifferentActivitiesinFragmentimplementation?【发布时间】:2011-10-0508:06:58【问题描述】:这是我第一次使用android片段。我正在关注thistutorial来实现一个片段。本教程一切正常... 查看详情