首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让按钮的onPressed [它在一个单独的类中]返回值给父类?

要让按钮的onPressed返回值给父类,可以通过以下步骤实现:

  1. 创建一个回调函数:在父类中创建一个回调函数,用于接收按钮的返回值。这个回调函数的参数类型和返回值类型应与按钮的onPressed函数相匹配。
  2. 在父类中实例化子类:在父类中实例化一个子类对象,并将回调函数作为参数传递给子类的构造函数。
  3. 子类中调用回调函数:在子类中,将按钮的返回值传递给回调函数,并调用该回调函数。
  4. 在父类中处理返回值:在父类的回调函数中,处理按钮返回的值。

以下是一个示例代码:

代码语言:dart
复制
// 父类
class ParentClass {
  void onPressedCallback(String value) {
    // 处理按钮返回的值
    print('按钮返回的值:$value');
  }

  void createChildClass() {
    // 实例化子类,并将回调函数传递给子类
    ChildClass child = ChildClass(onPressedCallback);
    child.callOnPressed();
  }
}

// 子类
class ChildClass {
  final Function(String) onPressed;

  ChildClass(this.onPressed);

  void callOnPressed() {
    String value = '按钮被按下了';
    // 调用回调函数,并传递按钮返回的值
    onPressed(value);
  }
}

void main() {
  ParentClass parent = ParentClass();
  parent.createChildClass();
}

在上述示例中,按钮被按下后,子类会调用父类中的回调函数,并将按钮返回的值传递给该回调函数。父类中的回调函数可以对按钮返回的值进行处理,例如打印到控制台或进行其他操作。

请注意,上述示例中的代码是使用Dart语言编写的,但是这个概念在其他编程语言中也是适用的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?

父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办? /* 父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?   ...法1:子类的构造方法通过 super(...); 去显示调用父类的带参构造方法。   ...法2:子类的构造方法通过 this();/this(...); 调用本类的其他的构造方法,但是子类的其他的构造方法中一定会有一个去访问了父类的带参构造方法。   法3:让父类提供无参构造。...;/super(...); 这三个语句访问子类或父类的构造方法的时候,必须放在第一句语句上。         否则,就可能会对父类数据进行多次初始化。 */ 示例代码如下图所示: ?

1.5K10
  • 在DWR中实现直接获取一个JAVA类的返回值

    在DWR中实现直接获取一个JAVA类的返回值     DWR是Ajax的一个开源框架,可以很方便是实现调用远程Java类。但是,DWR只能采用回调函数的方法,在回调函数中获取返回值,然后进行处理。...} } 上面这个类很简单,里面的getString就直接返回一个字符串。...我们假设在DWR中配置了Test在DWR中所对应的类未JTest,那么我们要调用getString方法,可以这样写: function Test() {     //调用Java类Test的getString...,然后在回调函数中处理,上面那段话执行后会显示test,也就是java方法的返回值。...现在,让我们打开DWR的engine.js文件,搜索一个asyn,马上,就发现了一个setAsync方法,原来,DWR是这个方法设置成属性封装起来了。这样,我们就可以实现获取返回值的功能了。

    3.2K20

    一个类如何实现两个接口中同名同参数不同返回值的函数

    String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的...,所以不可能通过重载的方式来解决,那么我们该如何同时实现这两个接口拉?...解决办法是把其中的不能重载的方法直接写成接口的方法,同时要注意这个方法只能由接口调用,不能声明为Public类型的.所以X的定义如下: public class X:IA,IB {     public...IB.GetA(string a)//实现IB接口     {         Console.WriteLine("IB.GetA");         return 12;     } } 同样如果有更多的同名同参不同返回值的接口...,也可以通过"接口名.函数名"的形式实现.

    3K20

    在 TypeScript 中,如何导入一个默认导出的变量、函数或类?

    在 TypeScript 中,如何导入一个默认导出的变量、函数或类?...在 TypeScript 中,如果要导入一个默认导出的变量、函数或类,可以使用 import 关键字结合 default 关键字来引用默认导出的成员。...如果默认导出的是一个变量或类,使用方式类似: // file.ts export default class MyClass { // ... } typescript Copy // main.ts.../file'; const instance = new CustomClass(); // 创建默认导出的类的实例 需要注意的是,默认导出的成员没有使用花括号 {} 包裹,而是直接赋值给导入的变量名...在 TypeScript 中,如何在一个文件中同时导出多个变量或函数? 在 TypeScript 中,使用 export 关键字来同时导出多个变量或函数。有几种常见的方式可以实现这一点。

    1.1K30

    Java中如何保证一个类在内存中的对象唯一性

    Java中如何保证一个类在内存中的对象唯一性,讲解如下: /** * 设计模式:对问题行之有效的解决方式。其实它是一种思想。 1,单例设计模式。...解决的问题:就是可以保证一个类在内存中的对象唯一性。 对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 如何保证对象唯一性呢?...2,在该类创建一个本类实例。 3,对外提供一个方法让其他程序可以获取该对象。 步骤: 1,私有化该类构造函数。 2,通过new在本类中创建一个本类对象。...3,定义一个公有的方法,将创建的对象返回。...Single() { } public static Single getInstance() { return s; } } // 懒汉式 class Single2 { // 类加载进来

    32310

    Java中如何保证一个类在内存中的对象唯一性

    Java中如何保证一个类在内存中的对象唯一性,讲解如下: /** * 设计模式:对问题行之有效的解决方式。其实它是一种思想。 1,单例设计模式。...解决的问题:就是可以保证一个类在内存中的对象唯一性。 对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 如何保证对象唯一性呢?...2,在该类创建一个本类实例。 3,对外提供一个方法让其他程序可以获取该对象。 步骤: 1,私有化该类构造函数。 2,通过new在本类中创建一个本类对象。...3,定义一个公有的方法,将创建的对象返回。...Single() { } public static Single getInstance() { return s; } } // 懒汉式 class Single2 { // 类加载进来

    2.3K40

    Java 中如何实现一个像 String 一样不可变的类?

    说到 String 大家都知道 String 是一个不可变的类;虽然用的很多,那不知道小伙伴们有没有想过怎么样创建一个自己的不可变的类呢?这篇文章阿粉就带大家来实践一下,创建一个自己的不可变的类。...特性 在手动编写代码之前,我们先了解一下不可变类都有哪些特性, 定义类的时候需要使用 final 关键字进行修饰:之所以使用 final 进行修饰是因为这样可以避免被其他类继承,一旦有了子类继承就会破坏父类的不可变性机制...这里我们定义一个 Teacher 类来测试一下,按照我们上面提到的几点,我们给类和属性的定义都加上 final 代码如下所示。...为了解决这个问题,我们还需要对我们的 Teacher 类进行改造,首先我们可以想到的就是需要将 students 和 metadata 两个成员变量不能直接返回给外层,否则外层的修改会直接影响到我们的不可变类...String 的实现 前面我们看的是自定义实现不可变类的操作,接下来我们简单看一下 String 类是如何实现不可变的,通过源码我们可以看到 String 也使用了关键字 final 来避免被子类继承,

    68320

    【Flutter 专题】62 图解基本 Button 按钮小结 (二)

    和尚继续尝试 Flutter 的基本按钮;今天和尚学习 MaterialButton 系列相关 Button;该系列以 MaterialButton 为父类,衍生出 RaisedButton...this.child, }) 分析源码可知,MaterialButton 作为其他 Button 父类,各属性比较清晰明了,有 hight 属性可设置 Button 高度,其子类...和尚原来以为按钮的子元素是 Widget,可自由设置各类效果,单独的 textColor 是否会略显多余;可实际并非如此,子元素设置颜色等之后 textColor 不生效;但 textColor 与主题相关...使用 RaisedButton 时会自带阴影效果,阴影的高度和高亮时的阴影高度均可自由设置;但是阴影的颜色应该如何处理呢,官方暂未提供阴影效果属性;和尚尝试了网上大神的方式,RaisedButton 外层依赖带模糊阴影效果的...Container;和尚借鉴并稍微调整一下,解决方案并非最佳,仅作尝试; 初始时定义一个默认的高度 height 作为阴影高度,监听按钮的 onHighlightChanged 方法更改

    1.4K41

    Flutter布局基础——页面导航和返回

    代码中的SecondScreen添加了一个按钮,点击的实现方法中是Navigator.pop,用于返回;但是通常情况下,不需要专门实现Navigator.pop,因为在iOS中,当使用了AppBar的时候...,会自动在左上角添加返回按钮;而在安卓中,使用系统返回按钮也可以直接返回。...:初始声明不同,具体使用的不同; MySecondPage中声明的title属性是一个不可空的String,使用了required修饰(这个地方要注意,是required而不是@required,有些文章没有更新...'Default PageName')), ), ); } } 效果如下: [pagecallback.gif] 注意上面按钮点击方法的使用,单独封装了一个_pagePush的方法...,并且使用async修饰,原因是Navigator.push的返回值是一个Future 类型,需要使用await,而await只能在async修饰的方法中使用,如果写过ReactNative的应该会熟悉这种写法

    1.6K30

    组合与自绘,我该选用何种方式自定义Widget?

    比如,在新闻类应用中,我们经常需要将新闻Icon、标题、简介与日期组合成一个单独的控件,作为一个整体去响应用户的点击事件。...接下来,我通过一个例子为你说明如何通过组装去自定义控件。 下图是AppStore的升级项UI示意图,图里的每一项,都有应用Icon、名称、更新日期、更新简介、应用版本、应用大小以及更新/打开按钮。...与上半部分类似,这两个文本与父容器之间存在些间距,因此在Column的最外层还需要用Padding控件给包装起来,设置父容器间距。...将CustomPainter设置给容器CustomPaint的painter属性,我们就完成了一个自绘控件的封装。...对于有着固定间距的视觉元素,我们可以通过Padding对其进行包装,而对于大小伸缩可变的视觉元素,我们可以通过Expanded控件让其填充父容器的空白区域。

    1.8K20

    Flutter 组件集录 | 新一代 Button 按钮参上

    按钮样式的更改 如果稍微翻一下源码就可以看到,这三个按钮本质上是一样的,都是 ButtonStyleButton 的衍生类。...按钮的尺寸 在按钮默认样式中,规定了最小尺寸是 Size(64, 36) , 最大尺寸无限。 也就是说,在父级区域约束的允许范围,按钮的尺寸由 子组件 和 边距 确定的。...即使它本身最小尺寸是 Size(64, 36),也不能违背父级的约束: 所以,想要修改按钮的尺寸,有两种方式: 从 子组件尺寸 边距 入手,调整按钮尺寸。 为按钮施加 紧约束 ,锁死按钮尺寸。...简看 ButtonStyleButton 组件的源码实现 首先,ButtonStyleButton 是一个抽象类,其继承自 StatefulWidget, 说明其需要依赖状态类实现内部的变化。...在 createState 方法中返回 _ButtonStyleState 状态对象,说明按钮构建的逻辑在该状态类中: @override State createState

    2.6K10

    Flutter Widget框架之旅 顶

    将小部件作为参数传递给其他小部件是一种强大的技术,可以让您创建可以以各种方式重用的通用小部件。最后,MyScaffold使用Expanded来填充剩余空间,其中包含一个中心消息。...例如,应用栏有一个阴影,标题文本会自动继承正确的样式。 我们还添加了一个浮动动作按钮,以便您采取措施。 请注意,我们再次将小部件作为参数传递给其他小部件。...无状态小部件从他们的父部件接收参数,它们存储在final的成员变量中。 当一个小部件被要求build时,它会使用这些存储的值来为它创建的小部件派生新的参数。...尽管最终结果与前一个示例相同,但责任分离允许将更大的复杂性封装在各个小部件中,同时保持父项的简单性。 把它们放在一起 让我们考虑一个更完整的例子,将上面介绍的概念汇集在一起。...它将它在构造函数中接收到的值存储在final的成员变量中,然后在build函数中使用它。例如,inCart布尔值可以在两个可视外观之间切换:一个使用当前主题的主要颜色,另一个使用灰色。

    6.7K20

    Flutter 的按钮,看这篇文章就够了

    我在之前的文章文本、图片和按钮在Flutter中怎么用中,简单介绍过按钮组件,本篇文章来详细聊聊Flutter中的各种按钮组件的各种应用场景。...RaisedButton为例来详细介绍一下这三类按钮组件该怎么去使用。...首先来看一下按钮组件的属性: onPressed,必填参数,按下按钮时触发的回调,接收一个方法,传null值表示按钮禁用,会显示禁用相关样式 child,表示按钮展示状态的Widget,一般为一个文本组件...,现在我们先来聊聊如何去自定义一个Button组件。...4,floatingActionButton的 child 属性,我们一般是给其配置成Icon,不建议给其配置成其他组件。 接下来,我们来聊一聊如何实现闲鱼底部Tabbar上的凸起按钮的效果。

    9.8K31

    Flutter技术与实战(4)

    ,即如何把一段字符串分为几个片段来管理,给每个片段单独设置样式。...这就对应着按钮控件中的两个最重要的参数了: onPressed 参数用于设置点击回调,告诉 Flutter 在按钮被点击时通知我们。...在 Flutter 中,Container 本身可以单独作为控件存在(比如单独设置背景色、宽高),也可以作为其他控件的父级存在:Container 可以定义布局过程中子 Widget 如何摆放,以及如何展示...* 需要注意的是,对于主轴而言,Flutter 默认是让父容器决定其长度,即尽可能大,类似 Android 中的 match_parent。...Theme.of(context) 方法将向上查找 Widget 树,并返回 Widget 树中最近的主题 Theme。如果 Widget 的父 Widget 们有一个单独的主题定义,则使用该主题。

    10.9K20
    领券