android - 如何从另一个类访问列表的长度
问题描述
在我正在构建的应用程序中,我添加了您可以在 peopleCheck 属性中看到的人名。现在我想创建一个新列表,如果每个人在这里与否,它都会包含一个布尔值。(此处不为 false,反之亦然)我声明了一个新列表“chk1”以及为每个人填写的内容作为默认 false,并且我想让整个列表的长度与 peopleCheck 列表的长度相同。我该怎么做?我尝试使用“widget.peopleCheck.length()”,但它返回两个错误。1. 在初始化器中只能访问静态成员。2.表达式不计算为函数,因此无法调用。
提前致谢。
import 'package:flutter/material.dart';
class PersonCheck extends StatefulWidget {
final List<String> peopleCheck;
PersonCheck({Key key, this.peopleCheck}) : super(key: key);
//PersonCheck(this.peopleCheck);
@override
_PersonCheckState createState() => _PersonCheckState();
}
class _PersonCheckState extends State<PersonCheck> {
List<bool> chk1 =List.filled(widget.peopleCheck.length(), false);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text(
'People Now',
style: TextStyle(fontSize: 30),
),
),
body: ListView.builder(
itemCount: this.widget.peopleCheck.length,
itemBuilder: (context, value) {
return Card(
color: Colors.amberAccent[200],
elevation: 3,
child: Container(
child: ListTile(
leading: Text(value.toString()),
title: Text(
widget.peopleCheck[value],
),
trailing: Checkbox(
value: chk1[value],
onChanged: (bool val) {}, //(bool val) => setState(() => chk1[value] = val),
),
),
),
);
},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.check),
),
);
}
}
/*
for (int i=0; i<widget.peopleCheck.length();i++){
}
*/
解决方案
长度是列表的一个属性,所以你可以这样做:
widget.peopleCheck.length
您收到错误,因为长度不是函数
您需要在 build 方法中访问小部件,您可以这样做:
List<bool> chk1;
Widget build(BuildContext context) {
chk1 = List.filled(widget.peopleCheck.length, false);
}
推荐阅读
- javascript - 在 Internet Explorer 中的 HTMLDivElement 对象上未定义“附加”
- php - PHP:从类/方法访问变量,两者都定义在同一个闭包中
- json - Grails 2.5.6 如何解析请求 JSON 并将其映射到 POGO?
- javascript - 下拉符号未出现在 Chrome 中
- android - 将一个号码添加到一个已经存在重复号码的列表中
- c - 多行 C' 分号背后的想法是什么?
- ios - 将 iPhone 连接到运行 OSX 的 libvirt 虚拟机
- mql4 - 从 metatrader4 向 python 中的电报机器人发送消息
- c# - 选择实体框架的版本后没有任何反应
- java - 如何在 JavaFX 中获取 ScrollBar 的拇指值范围?