首页 > 其他分享 >Android开发 - 使用自定义接口在新窗口中传回数据

Android开发 - 使用自定义接口在新窗口中传回数据

时间:2024-08-17 15:38:16浏览次数:8  
标签:窗口 自定义 DialogFragment1 MainActivity 新窗口 DialogFragment Android dialogFragment

  • Android开发中,有时候我们需要在新打开的窗口中传递数据回来。例如:在新打开的 DialogFragment 窗口传递数据回 MainActivity 启动窗口

  • 代码举例

    • 首先在 MainActivity 中定义实例化一个 DialogFragment 窗口

      // MainActivity.java
      // 点击按钮打开一个 DialogFragment 窗口
      btn.setOnClickListener(v ->{
          DialogFragment1 dialogFragment = new DialogFragment1(); // 假定 DialogFragment 窗口类名为DialogFragment1
          dialogFragment.show(getFragmentManager(), "dialogFragment"); // 显示 DialogFragment 窗口
      });
      
    • 随后在需要打开的 DialogFragment 类创建接口并回传数据

      //DialogFragment1.java
      // SetOnClickDialogListener 为自定义类,在未创建完成时回持续爆红
      private SetOnClickDialogListener clickListener;
      //定义构造方法,用于在 MainActivity 中接收数据
      public void mOnClickListener(SetOnClickDialogListener l){
          this.clickListener = l;
      }
      //自定义类的接口,里面的 ClickDialogListener 为 DialogFragment 中自定义的使用方法与形参,用于回传数据
      public interface SetOnClickDialogListener{
          //这里假定需要回传一个字符串与一个整数
          void ClickDialogListener(String str, int num);
      }
      //点击按钮回传数据
      btn.setOnClickListener(v -> {
          clickListener.ClickDialogListener("hallow, world!", 1);	//回传数据
          this.dismiss();//关闭窗口
      });
      
    • MainActivity 中接收数据

      // MainActivity.java
      btn.setOnClickListener(v ->{
          DialogFragment1 dialogFragment = new DialogFragment1(); // 假定 DialogFragment 窗口类名为DialogFragment1
          dialogFragment.show(getFragmentManager(), "dialogFragment"); // 显示 DialogFragment 窗口
          //使用 DialogFragment 类中自定义的构造方法进行接收数据
          dialogFragment.mOnClickListener((str, num) -> {
              //充分利用所接收到的数据
              if (num == 1) {
                  btn.setText(str)
              }
          });
      });
      
  • 如此这般即可实现数据回传,如果是在 MainActivity 中传递数据到 DialogFragment 中不建议使用此方法,建议使用 Bundle 类 进行传递

标签:窗口,自定义,DialogFragment1,MainActivity,新窗口,DialogFragment,Android,dialogFragment
From: https://www.cnblogs.com/ajunjava/p/18364488

相关文章

  • 什么是AOP,以及在Springboot中自定义AOP
    AOP(AspectOrientedProgramming)一般译为面向切面编程Aspect[ˈæspekt]n.方面;层面;(动词的)体那么AOP面相切面编程具体是指什么,它和之前的OOP面相对象编程又有什么区别和联系。先说OOP,面相对象编程简单来说,万物皆可视为对象,我们要做的就是将万物(业务逻辑中的虚拟物体),抽象为......
  • Android Linux EAS优化-schedtune
    SchedTuneSchedTune是一项与CPU调频相关的性能提升技术,它实现为一个cgroup控制器。这个控制器提供了一个名称为schedtune.boost的配置参数,运行时系统可以使用它来更改该组中的进程的调度方式。每当调整这个参数的时候,它会使受影响的进程看起来比实际更重(或更轻)。如果一个组被提......
  • 【数据库】事务 | 视图 | 自定义函数创建
    1、事物及其特征事物机制的应用:淘宝订单交易,微信转账等。视图--------筛子---------过滤-------筛选想要的信息数据库只存放了视图对应的SQL语句。视图是一个虚拟的表,本质是一个虚拟的SQL命令集合。(1)创建单表视图(虽然视图里没有30的数据,但原表里插入这个30的数据......
  • WPF 自定义顶部标题栏的实现方式
    感谢吕毅,本文主要全是他的思路,哈哈哈。我这里就是简单的做个归纳总结,不讲原理,不讲思路。主打一个拿来主义。感兴趣的朋友可以直接前往他的文章里看一下,讲的很细致,可以照着做一做。我应该是借鉴了很久了,但是一致都没有正经的整理过。本文主要是为了贯彻落实拿来就用,能跑就行这......
  • 腾讯地图SDK Android版开发 3 显示定位
    地图SDKAndroid版开发3显示定位前言概念定位数据定位模式定位样式类显示定位地图包相关类和接口TencentMapLocationSourceLocationSource.OnLocationChangedListener示例代码模拟定位显示效果图获取定位定位包相关类和接口TencentLocationManagerTencentLocationRe......
  • 腾讯地图SDK Android版开发 5 地图交互操作
    腾讯地图SDKAndroid版开发5地图交互操作前言控件介绍控件介绍接口控件常量地图控件点击事件示例代码效果图地图手势地图手势方法说明地图手势开关地图手势事件当地图被点击时回调接口当地图被长按时回调接口地图手势识别的回调地图状态地图状态类地图状态构造类地......
  • 基于flask+vue框架的基于Android的大学校园车辆管理系统统后[开题+论文+程序]-计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着大学校园规模的不断扩大与师生数量的激增,校园内的车辆管理问题日益凸显。传统的人工管理方式不仅效率低下,难以满足高峰时段的车辆进出......
  • 鸿蒙中hvigor自定义任务
    鸿蒙中,各个module都可以自定义hvigor任务进行一些编译期的操作,方便多模块打包时,进行编译期的一些修改和配置下面简单列举下自定义任务的创建import{hapTasks}from'@ohos/hvigor-ohos-plugin';let__Version='1.0.0'exportfunctionloadVersionFun(params){re......
  • ArkTs基础语法-声明式UI-页面和自定义组件生命周期
    页面和自定义组件生命周期组件和页面的关系生命周期页面生命周期组件生命周期普通流程为:其他流程:自定义组件的创建和渲染流程首次创建重新渲染自定义组件的删除自定义组件监听页面生命周期组件和页面的关系自定义组件:@Component装饰的UI单元,可以组合多个系统组件......
  • 将Android手机的屏幕投屏到macos系统上
    技术分享点: 将Android手机的屏幕投屏到macos上 先安装scrcpy: 1.在macos终端安装scrcpy brewinstallscrcpy---在macos上执行 若macos上没有adb、则需要安装 brewinstallandroid-platform-tools 进行相关配置 WIFI使用: 1.确保PC和手机在同一Wifi中 ......