Activity和Fragment之间如何进行回调?

2024-01-04

我的活动中有这个界面。

public interface LogoutUser {
    void logout();
}

我的片段实现了这个接口,所以在我的片段中,我有这个:

@Override
public void logout() {
    // logout
}

在我的活动中我打电话

mLogoutUser.logout();

Where mLogoutUser是 LogoutUser 接口类型。

我的问题是mLogoutUser为空的对象。如何初始化它?

谢谢你!


正如我在评论中所说,我使用以下方法解决了这个问题onAttach方法在我的片段中,但这样你必须在片段中声明回调字段(在本例中为 mLogoutUser ),并以这种方式初始化它:

public class MyFragment extends ListFragment {
    LogoutUser mLogoutUser;

    // Container Activity must implement this interface
    public interface LogoutUser {
        public void logout();
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        // This makes sure that the container activity has implemented
        // the callback interface. If not, it throws an exception
        try {
            mLogoutUser = (LogoutUser) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString()
                    + " must implement LogoutUser");
        }
    }

    ...
}

更多信息在与其他片段通信 http://developer.android.com/training/basics/fragments/communicating.html.


但如果您的情况是活动中声明的字段,您可以使用onAttachFragment您的活动中的方法以这种方式初始化您的侦听器字段:

@Override
public void onAttachFragment(Fragment fragment) {
    super.onAttachFragment(fragment);

    mLogoutUser = (LogoutUser) fragment;
}

此外,您还可以使用事件总线在片段和活动之间进行通信。一个选项是奥托图书馆 http://square.github.io/otto/,来自广场。

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

Activity和Fragment之间如何进行回调? 的相关文章

  • Android - 如何创建可点击的列表视图?

    我想让列表视图中的所有列表项打开到一个新页面 因此每个列表视图项目都打开到一个我可以使用的新黑色页面 我根本不知道如何实现这个 我已经连续搜索了几个小时 但找不到解决方案的答案 如果有人能够展示和 或解释如何执行此操作而不是提供链接 我们将
  • 在 Android 中存储照片相关数据的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要为我的应用程序存储一些照片相关信息 据我所知 您可以向图像内容提供商读取 写入 GPS 位置和图像描述 我还需要添加用于云同步的字段 标志
  • Android Studio 0.8.2 URI 有一个权限组件

    我收到 Gradle 项目同步失败 消息 当我启动 Android Studio 时 当我尝试清理项目时 我收到 无法完成 Gradle 执行原因 URI 具有权限组件 我已经尝试了几件事 但仍然陷入困境 我将配置文件从用户文件夹中移出 并
  • Android 中的计时器任务在无限期时间后停止运行

    我是安卓新手 我正在开发一个应用程序 其中一段特定的代码在后台每 5 秒后执行一次 为了实现这一目标 我使用带有定时器的服务 其中包含定时器任务 有时它工作正常 但经过一段时间后 我的服务正在运行 但计时器任务在 android 中自动停止
  • ViewPager - 无限滚动? [复制]

    这个问题在这里已经有答案了 我需要在屏幕上显示文本或图像 文本或图像 一个请求总共 10 个 是通过 HttpClient 从我的服务器获取的 当用户向右滑动并到达第 8 张幻灯片时 我需要从服务器获取下一组 10 个文本或图像 使用 Vi
  • 安卓写入文件

    经过几周的不编程之后 我决定完成我的应用程序 上次我无法进行文件写入和读取 现在我想做 我也许可以使用数据库 但这似乎容易得多 我已经发现this http narenst wordpress com 2010 01 25 android
  • DP5 7.0 - 向待处理意图添加额外内容是否会失败?

    在跟踪器上添加链接的问题 因此 我今天在我的 Nexus 5X 上安装了 DP5 Android 7 0 版本 我一直在开发一个应用程序 它使用 Android 的 AlarmManager 类在特定时间安排本地通知 在此版本之前 代码在运
  • 在 Volley 中更新 UI 最有效的方法是什么

    最近我在 android 中使用 Volley 库 它工作得很好 但我想知道更新 UI 的最有效方法 我有一个包含所有 Volley 方法的 Utils 类 现在我传递了所有视图将作为参数更新 但我读到我可以在活动中实现侦听器 然后将它们作
  • 制作教程(教练标记)叠加层。需要帮助根据另一个视图的位置移动视图

    你好 我正在尝试在教程上做一个教练标记 主程序 java public class Main extends Activity private Button button1 private int x Override public voi
  • 滑动抽屉上的按钮? - 安卓

    好吧 我已经在我正在构建的 Android 应用程序中的滑动抽屉上实现了一个按钮 唯一的问题是 当我按下按钮时 整个滑动抽屉都会被按下并向上滑动 我知道我可以在 XML 中禁用 按向上滑动 但这似乎不起作用 因为滑动抽屉仍然在没有向上滑动的
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • 从字符串中删除特定字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何从字符串中删除特定字符 我有一个 Arraylist 测试数组 String line testingarray get index
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • ACTION_MEDIA_BUTTON 的广播接收器不起作用

    我正在为 Android 操作系统版本 4 0 3 ICS 编写 Android 应用程序 问题是我没有从 BroadcastReceiver 的 onReceive 方法中的 Log d 获得输出 这意味着我的应用程序没有正确处理广播 我
  • android 以编程方式在单选组按钮之间添加填充

    我有一个 xml 格式的单选组 按钮是通过编程生成的 如何以编程方式添加按钮之间的间距 我以为是这样的LayoutParams但我的对象没有明显的setPadding or setMargins方法 这就是我正在尝试的 RadioButto
  • Android:将“内部”链接添加到 TextView 的一部分,该链接链接到我的代码中的操作

    正如标题所解释的 我想添加链接到我的TextView 有这两个警告 我希望链接能够作用于TextView 不是完整的 类似于AHTML 中的锚点 我希望链接指向我的代码中的操作 而不是网站 我可以在我的活动中定义一个方法 或者实现一个OnC
  • React Native - 方向锁定;我还能获得传感器的方向吗?

    我正在开发一个 React Native 应用程序 该应用程序设计为以纵向模式运行 方向通过清单锁定
  • okHttp3 java.lang.NoSuchMethodError:没有虚拟方法 setCallWebSocket

    我已从 okhttp Retrofit 更新到 okhttp3 Retrofit2 但我的应用程序因此异常而无法启动 FATAL EXCEPTION EventThread Process appli speaky com PID 1470
  • Firebase 令牌未生成

    我得到的令牌未生成 onTokenrefresh 没有调用 谁能帮忙 它已连接到 firebase 但令牌仍然没有生成 public class MyFireBaseInstanceId extends FirebaseInstanceId
  • Android:警报对话框消失并执行下一个意图

    我正在使用禁用 GPS 的 AlertDialog 一旦用户启用 GPS 我就会通过 Intent 转到另一个 Activity 问题是 AlertDialog 出现 然后移动到下一个活动 然后我才能单击对话框上的任何按钮 我需要做什么才能

随机推荐

  • Ansible:在角色目录中的目录中调用角色的剧本

    我想塑造我的 ansible 角色和剧本的目录结构 目前我有一个像这样的目录结构 group vars all group one group vars yml group vault yml host vars server1 yml p
  • 如何创建 GS1 DataBar Expanded 条形码?

    我需要创建一个GS1 DataBar Expanded RSS Expanded 条形码使用Code128字体或简单的二进制条形码字体 我知道如何使用应用程序标识符或创建校验和 但我不知道如何对数据进行编码GS1 DataBar Expan
  • Eigen 中的自定义标量类型

    我目前正在尝试设置一个自定义标量类型以与 Eigen3 库一起使用 atm 它是一个简单的包装器double 我已关注https eigen tuxfamily org dox TopicCustomizing CustomScalar h
  • 如何关闭 Cocoa 应用程序中的键盘声音?

    我的方法有问题OpenGL可可应用程序 每次keyUp KeyDown事件被触发 系统声音正在播放 我如何为我的应用程序禁用此逻辑 我有一种不好的预感 由于某种奇怪的原因 我的应用程序可能会将按键视为错误并播放系统警报声音 请帮忙 添加到您
  • 如何让 Python 使用 Mac OS TrustStore 中的 CA 证书?

    我需要在公司内部网上使用自定义根证书并将它们加载到 Mac OS TrustStore KeyChain 中确实解决了所有浏览器和 GUI 应用程序的问题 看来它甚至可以与以下版本一起使用curl随 Mac OS X 一起提供 但它不适用于
  • Google App Engine 的 Memcache (Java) 是全局缓存吗?

    我是 Google App Engine 的新手 最近几天我一直在使用 GAE 的 Memcache 来存储数据来构建一个应用程序 根据我的初步发现 GAE 的 Memcache 似乎不是全局的 让我进一步解释一下 我知道对 GAE 的不同
  • WSS 在 http 上工作吗?

    是否可以通过 http 建立 wss 协议 我在论坛上读到 ws 可以与 http 一起使用 但是 wss 只能与 https 一起使用吗 真的吗 因为我试图在本地主机上的 wamp 上测试它 但不起作用 ws告诉 WebSocket 客户
  • 如何在 Xcode 中创建可重用代码包?

    我正在开发一个 iPhone 应用程序 必须解析 xml 文件才能将它们放入数据库中 我还将在我的应用程序中使用相同的 xml 解析器 以便用户可以导入自己的数据 我想知道如何将这些 xml 解析器提取到捆绑包或库中 以便我可以在我的 iP
  • 如何使用 Android 将 .pdf .doc .txt 文件上传到服务器(mysql 数据库)

    我在将文件上传到服务器时遇到一些困难 我需要知道使用名称值对上传文件的完整代码 听到的是我的 android 代码 我只得到我的文件路径 如何将其上传到服务器 引用为 nameValuePairs add new BasicNameValu
  • Backbone.js `listento` 不会针对过滤后的集合触发

    listento仅针对全局集合触发 而不是我在创建视图时传递给视图的集合 例如 var MyView Backbone View extend initialize function this listenTo notes add this
  • 如何在浏览器中录制声音?

    我需要用户在浏览器上录制他们的声音 然后自动将生成的 mp3 上传到网络服务器 我认为用户按下一个大的开始记录 停止记录按钮来执行此操作 然后 这会将文件保存在用户硬盘上 然后它会被有效地压缩并自动通过 ftp 传输到网站 是否可以使用 A
  • 有条件地通过管道传输到 Out-Null

    我正在编写一个 PowerShell 脚本msbuild一堆解决方案 我想计算有多少解决方案构建成功 有多少解决方案失败 我还想查看编译器错误 但仅限于第一个失败的错误 我假设其他错误通常也会出现类似的错误 并且我不想弄乱我的输出 我的问题
  • MySQL:“您的 SQL 语法有错误...靠近 'desc) VALUES ('Idea','Description')'”[重复]

    这个问题在这里已经有答案了 我正在尝试让 MySQL 为我的表单提交工作 当我尝试插入表时遇到问题 当我将信息放入表单并单击 提交 时 在本例中 一个字段中的信息为 想法 另一个字段中的信息为 描述 我收到以下响应 您的 SQL 语法有错误
  • 如何将 React 组件的 props 传递给样式组件

    我正在尝试根据以下内容设置样式组件的高度props它所在的 React 组件的名称 我尝试了以下方法 const Styled styled div height props gt props height class Parent ext
  • Camel-SQL 为什么使用 StreamList 似乎会加载所有 ResultSet?

    Hi 我想做什么 我目前正在开发一个 ESB 项目 apache camel spring boot 2 其中我读取了一个包含超过 100 000 000 行的 MySQL 表 我一次清空该表 1 行 转换该行并将其发送到另一个数据库 我怎
  • 如何解决使用CMAKE 3.4.1和VS2015编译带有额外模型的opencv3.0时找不到包含文件的问题

    使用 CMAKE 3 4 1 和 VS2015 构建 OPENCV 3 0 时 VS2015出现以下错误 error C2264 std tuple
  • 在子目录中安装 django

    我在 Ubuntu 14 上运行 apache2 服务器 现在我想配置 Apache 与 mod wsgi 一起使用 以便在 www abc com lab 等域的子目录上运行 Django 但我总是无法做到这一点 顺便说一下我已经成功安装
  • 交叉编译:特殊的交叉编译器还是只是带选项 -march 的 gcc?

    我需要在Linux机器上为Raspberry PI 3 编译一个程序 并且代码必须符合c 17标准 官方工具链已经过时 并且缺少 c 17 编译选项 我现在可以看到的两个解决方案是 1 gcc有一个选项 march 其描述如下 https
  • 在 HTML 中使用 SVG 绘制新月

    是否可以在 HTML 中使用 SVG 绘制新月 我一直在尝试W3学校 http www w3schools com svg 但我没有看到这样的例子 我不需要您在 新月 的典型谷歌图像中看到的任何阴影 只需一个实心边框新月 您可以绘制带有两个
  • Activity和Fragment之间如何进行回调?

    我的活动中有这个界面 public interface LogoutUser void logout 我的片段实现了这个接口 所以在我的片段中 我有这个 Override public void logout logout 在我的活动中我打