关键词:
【中文标题】如何使用活动显示的片段转到上一个活动【英文标题】: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来实现一个片段。本教程一切正常... 查看详情