使用带有新值的片段多次并进行后台维护

2024-01-24

我正在制作一个应用程序滑动菜单 and tab在底部...整个应用程序是fragment基于..我面临一些我正在使用的问题片段A然后点击一个按钮并转到片段B,in 片段B有一个按钮,点击这个按钮片段A将用新值更新......等等

意味着应该发生从 A->B 的切换..但是 backstack 也应该被维护..

这是我的代码后台堆栈:

public static void goToFragmentWithBackStack(Fragment fragment) {
    Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
    if (tmp != null && tmp.isVisible())
        return;

    ft = fm.beginTransaction();
    ft.add(R.id.content_frame, fragment, fragment.getClass().getName());
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.addToBackStack(null);
    ft.commit();
    currentTag = fragment.getClass().getName();
}

这里我只使用这个方法来转到下一个片段。并且后退按钮已经通过活动的回压来维持。当我使用此方法并再次调用片段 A(已经在容器中)时,它不会被调用...如果我使用转到片段它被称为但旧的方法片段A被破坏(会出现黑屏)。这是我的转到片段 Method:

public static void goToFragment(Fragment fragment) {
    Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
    if (tmp != null && tmp.isVisible())
        return;

    ft = fm.beginTransaction();
    ft.replace(R.id.content_frame, fragment);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.commit();
    currentTag = fragment.getClass().getName();
    Log.d("Trong", "BackPressedcurrentTag " + currentTag);
}

我已经使用这个概念来重用已用过的片段:Android - 多次实例化一个Fragment https://stackoverflow.com/questions/17677178/android-instantiate-a-fragment-multiple-times

但这没有帮助。让我再次澄清我的问题:

我想在容器中一次又一次地使用用过的片段,并且所有片段也应该在按下后调用

流程应该是这样的:A->B->A->B->A AND 后压:A

请帮助我。提前致谢。

我制作的片段的新实例是这样的:

    public static FollowerFragment newInstance() {
    return new FollowerFragment(null,null,null);
}

public static Fragment newInstance(String cat_id,String status,String id) {
    return new FollowerFragment(cat_id,status,id);
}
public FollowerFragment(String cat_id,String status,String id) {
    // TODO Auto-generated constructor stub
    this.str_status=cat_id;
    this.counter = status;
    this.user_id = id;

}

这基本上是一个扩展评论,以更好地帮助 OP 理解需要做什么。

好的,你有FragmentA and FragmentB.
Within FragmentA你用一个替换你的容器new FragmentB.
From FragmentB你想要显示FragmentA再次,但使用新数据,但您还希望将原始片段与旧数据保留在后台堆栈中。它不是那样工作的。

以下是一个非常简单的示例,说明了您应该实现目标的方向。

由于您希望在每个片段上显示不同的信息,因此每个片段的构造函数应该包含一种方法,让您告诉它应该显示什么内容,例如:

public class FragmentA{
    String mText;
    public FragmentA(String text){
        mText = text;
    }
}

现在,当您需要创建一个新的FragmentA从内部FragmentB或者在任何地方,您只需要执行以下操作,并使用您自己的方法:

goToFragmentWithBackStack(new FragmentA("this is the new data"));

再说一次,这只是您应该做什么的基本示例,而不是用新数据回收旧片段。您很可能无法复制/粘贴此内容并期望它起作用,但它可以让您了解需要做什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用带有新值的片段多次并进行后台维护 的相关文章

  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • 如何检测android中的颠倒方向?

    在我的 Android 应用程序中 我有全景图像 并且我使用 TYPE ORIENTATION 传感器根据手机运动旋转该图像 它对于横向和纵向都工作良好 这是旋转逻辑的代码 Override public void onSensorChan
  • 在屏幕上随机生成一个圆圈并将其设为绿色或红色

    所以我一直在尝试制作一个游戏应用程序 它可以在 Android 屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮 如果有人可以帮助我 我将不胜感激 另外 如果有人知道如何做到这一点 我想慢慢地产生更快的酷优势 谢谢 SuppressLi
  • android - 过度绘制布局允许通过 LinearLayout 进行触摸

    在下面的 UI 中 我将下面的 drabable 覆盖了整个屏幕 LinearLayout 是透明的 并允许其下方的控件可单击或可触摸 基本上我可以滚动此 LinearLayout 下面的列表以及单击控件 我如何禁用它 See attach
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • 如何在 Android 中创建刮刮卡?

    我需要为我在学校的期末项目创建一个 刮刮卡 应用程序 但找不到如何实现刮刮事件的方法 如何创建背景图像并在其上放置灰色矩形 所以当我刮刮这些矩形时我会看到他们下面的图片 实现必须在 Android 中 因为我还不知道如何在 Objectiv
  • Android,语言文件不起作用

    我现在正在创建一个 Android 应用程序 并尝试为我的母语添加语言文件 但在某种程度上 这对我不起作用 我尝试在两部不同的手机中加载该应用程序 但结果相同 之前创建过语言文件 效果良好 但这次不行 手机设置为瑞典语 语言文件适用于我创建
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • 如何在Firebase Android应用程序中分离两个不同的用户?

    我有一个应用程序 有两种不同类型的用户 一种是教师 第二种是普通用户 如果普通会员登录 他会去normal memberActivity如果他是教师会员 他会去Teacher memberActivity 我如何在登录活动中执行此操作 我的
  • 如何在代码中设置TextView的文字颜色?

    在 XML 中 我们可以通过以下方式设置文本颜色textColor属性 比如android textColor FF0000 但如何通过编码来改变它呢 我尝试过类似的东西 holder text setTextColor R color R
  • 我可以使用“导入 com.facebook.FacebookSdk;”使用 Facebook SDK 3.23.1?

    在我的 app build gradle 文件中 我有compile com facebook android facebook android sdk 3 23 1 在我的 BaseActivity java 文件 其中有 public
  • 如何使用 onSearchRequested() 调用搜索对话框

    我正在尝试实现搜索对话框 但无法显示活动中的搜索 我在清单文件中定义了主要活动 此活动向用户显示了他们必须从中选择的选项列表 选项之一是 搜索 选项
  • 使用startActivityForResult,如何获取子活动中的requestCode?

    我有四项活动 即 A B C 和 D 我的情况是A将通过startActivityForResult启动活动B startActivityForResult new Intent this B class ONE 在另一种情况下 我将使用不
  • 对基本适配器类及其功能的疑问

    我正在尝试自定义列表视图 我使用数组列表添加对象列表 并将其发送到扩展基本适配器的类 当我扩展基本适配器类时 它实现了一些方法 例如 getView 等 在 getView 中 我将其发送到将名称 数据 分配给 XML 格式的自定义菜单的类
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • 在Android中提取视频帧

    我想知道是否可以从 Android 中正在运行的视频中提取帧 我需要定期提取帧并将其发送以进行进一步处理 有人能为我找到答案吗 Thanks Abhi 您可以使用媒体元数据检索器 http developer android com ref
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显
  • SambaFileInputStream 和 FileInputStream 有什么不同?

    我需要从 samba 服务器流式传输视频 并且我使用 nanohttpd 在我的项目中创建简单的服务器 当我使用本地文件中的 fileinputstream 时 视频视图可以按设置播放视频 http localhost 8080 publi
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步

随机推荐

  • Ruby 字符串剥离定义的字符

    在Python中 我们可以使用 strip https docs python org library stdtypes html str strip字符串的方法 用于删除所选字符的前导或尾随出现 gt gt gt print Remove
  • 如何在 VS 项目中禁用 clang-cl 特定警告

    我使用一个第三方项目 它会产生大量警告 我在 VS 项目属性中禁用了所有这些 有时 我会切换到LLVM clang cl用于检查 clang 警告的工具集 第 3 方项目使用 clang cl 产生如此多的警告 以至于 VS 的输出量令人窒
  • 分析多进程 Python 脚本时出现神秘的 pickle 错误 [重复]

    这个问题在这里已经有答案了 我正在使用multiprocessing模块 我正在使用UpdateMessage对象 我自己的类 通过发送multiprocessing Queue对象 用于进程之间的通信 这是课程 class UpdateM
  • JBoss Netty 与 JSON

    我希望我的 Ajax 代码能够通过 Netty 连接服务器 为此 我需要在服务器端 Netty 处理程序中使用 JSON 解码器和编码器 是否有任何开箱即用的实现 或者我应该编写自己的实现 Thanks Gil 据我所知 没有内置的 JSO
  • rspec 集成测试中的会话对象

    我正在使用 rspec 和 capybara 进行集成测试 他们是在请求规范中创建会话对象的一种方法吗 我有一个视图页面 在其中使用会话对象来检查其值以显示选择性内容 我面临的问题是我无法在请求规范中创建会话对象 这是视图的示例 conte
  • 在子类和 UIViewController 中使用 UITextViewDelegate

    我正在子类化 UITextView 并在子类中实现一些委托方法 例如textViewDidChangeSelection但我还需要在视图控制器中获取 UITextView 委托的通知 因此 如果我创建子类的对象并在视图控制器中设置 text
  • 以编程方式更改 WPF 可编辑组合框的背景颜色

    我正在尝试动态更改可编辑的背景颜色ComboBox在运行时 使用代码 特别是 我想更改可编辑的背景TextBox这是ComboBox SO 上有几个关于这个问题的答案 比如 WPF更改代码中可编辑组合框的背景颜色 https stackov
  • 观看过程替换

    我经常运行命令 squeue u USER tee gt wc l where squeue is a 泥浆命令 https slurm schedmd com squeue html查看您正在运行多少个作业 这给了我两个输出squeue并
  • mysqldb 总是将整个查询结果拉入一个块,即使我只是执行 fetchone?

    所以如果我这样做 import MySQLdb conn MySQLdb connect cur conn cursor cur execute SELECT FROM HUGE TABLE print hello print cur fe
  • 适用于 TB 级结构化数据的 Greenplum、Pivo​​tal HD + Spark 还是 HAWQ?

    我在 Greenplum DB 中有 TB 的结构化数据 我需要对我的数据运行本质上是 MapReduce 作业 我发现自己至少重新实现了 MapReduce 的功能 以便这些数据适合内存 以流式传输方式 然后我决定到别处寻找更完整的解决方
  • 将图像裁剪为正方形 - Android

    如何从左侧和右侧剪切矩形图像 600 x 300 以适合方形 ImageView 我不想调整图像大小 我只想将其裁剪为 300 x 300 解决方案 正如 blackbelt所说 Bitmap cropImg Bitmap createBi
  • 如何将 Aeson 的解析器与 IO 结合使用

    我的数据类型包含许多字段 如果不是由 JSON 配置文件手动指定 则应随机设置 我正在使用 Aeson 来解析配置文件 做这个的最好方式是什么 目前 我将值设置为等于某个不可能的值 然后检查该值以进行编辑 data Example Exam
  • iPhone:点击透明 UIScrollView 后面的视图

    我有一个 UIScrollView 设置为具有清晰的背景 滚动视图的一部分确实有内容 但一部分没有 因此它显示了后面的其他视图 我希望能够单击 UIScrollView 并单击后面的 MKMapView 但仅限于 UIScrollView
  • oracle存储过程中如何创建和使用临时表?

    我想在存储过程中创建临时表并以相同的方式访问它 但出现错误ORA 00942 Table or view does not exists 以下是我尝试过的过程 Create procedure myproc IS stmt varchar2
  • Flutter firebase 消息传递中的双重通知

    最近我升级到 firebase messaging 10 0 0 当应用程序未运行时 如果收到通知 它会显示两次 我收到后在代码中修改了通知数据并显示了它 即使如此 我也可以看到已修改和未修改的通知 我不知道该通知在哪里触发 但是当应用程序
  • DOORS数据库中的动态数组值得使用吗?

    我是 DOORS 数据库的新开发人员 正在使用 dxl 编写脚本 如您所知 dxl 中有一维数组 我想使用多个维度 因此决定使用动态数组 但这大大减慢了我的脚本速度 当每个模块大约有 14 000 个对象时 脚本运行需要一天左右的时间 我想
  • 浏览核心数据对象图 [2]

    我问了一个question https stackoverflow com questions 12733490 navigating the core data object graph昨天我真的应该从一个更简单的例子开始 将我的问题提炼
  • 在实践 II 中使用 Scala Actor 编写应用程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因为我的第一个问题太长 所以我将其作为一个单独的问题提出 这是关于基于参与者的应用程序架构的另一篇文章
  • 使用react-router登录后自动重定向

    我想在我的应用程序中建立一个 Facebook 登录反应 反应路由器 通量应用 我在登录事件上注册了一个侦听器 并且希望将用户重定向到 dashboard 如果他们已登录 我该怎么做 location push除非完全重新加载页面后 否则效
  • 使用带有新值的片段多次并进行后台维护

    我正在制作一个应用程序滑动菜单 and tab在底部 整个应用程序是fragment基于 我面临一些我正在使用的问题片段A然后点击一个按钮并转到片段B in 片段B有一个按钮 点击这个按钮片段A将用新值更新 等等 意味着应该发生从 A gt