te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>dart - I have problem Creating a list and constructor in Flutter - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

dart - I have problem Creating a list and constructor in Flutter - Stack Overflow

programmeradmin4浏览0评论

I have 3 Lists in my Flutter Project; How can I collect them in one list using Class and constructor in Flutter ?

my three lists;

  1. one has three question
  2. second has image
  3. third has true or false

I want to collect them in one list.

I tried:

class Question {
  late String questionText; 
  late String questionImage; 
  late bool questionAnswer; 

  Question({String q, String i, bool a}) { 
    questionText = q; 
    questionImage = i; 
    questionAnswer = a; 
  } 
}

it shows error in this line

I have 3 Lists in my Flutter Project; How can I collect them in one list using Class and constructor in Flutter ?

my three lists;

  1. one has three question
  2. second has image
  3. third has true or false

I want to collect them in one list.

I tried:

class Question {
  late String questionText; 
  late String questionImage; 
  late bool questionAnswer; 

  Question({String q, String i, bool a}) { 
    questionText = q; 
    questionImage = i; 
    questionAnswer = a; 
  } 
}

it shows error in this line

Share Improve this question edited Feb 18 at 4:21 Ruchit 2,7301 gold badge14 silver badges27 bronze badges asked Feb 17 at 22:43 Mostafa IsmaelMostafa Ismael 192 bronze badges New contributor Mostafa Ismael is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct. 4
  • 1 Can you include the code? All I see is some text, but no code. It sounds like you want a List<SomeItem> where SomeItem is a class with three properties: String question, image, and bool. – Randal Schwartz Commented Feb 17 at 22:51
  • class Question { late String questionText; late String questionImage; late bool questionAnswer; Question({String q, String i, bool a}) { questionText = q; questionImage = i; questionAnswer = a; } } – Mostafa Ismael Commented Feb 17 at 23:15
  • 1 Keep reading the standard dart documentation. Your constructor should be using "this.questionText" and so on. – Randal Schwartz Commented Feb 18 at 0:28
  • As Randal said in his first comment, you'll need List<Question> to represent the list. If you're having problems creating the list, show the code you tried (click the edit link under your question to edit it) and the error you get. – Frank van Puffelen Commented Feb 18 at 2:40
Add a comment  | 

1 Answer 1

Reset to default 3

You can implement your class like this:

class Question {
  late String? questionText;
  late String? questionImage;
  late bool? questionAnswer;

  Question({
    required this.questionText,
    required this.questionImage,
    required this.questionAnswer,
  });
}

Here, you may even remove the late modifiers to the class instance variables. If you decide to also remove the required keyword, a null check may be necessary during manipulation of the values (also needed for when instance variable typed as nullable e.g. String?).

You can use the class to collect and the information like this:

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Question myQuestion = Question(
    questionText: "Is this a question?",
    questionImage: "path/to/image.png",
    questionAnswer: false,
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Example")),
      body: SingleChildScrollView(
        child: Padding(
          padding: EdgeInsets.all(20.0),
          child: Column(
            children: [
              Text("QT: ${myQuestion.questionText}"),
              Text("QI: ${myQuestion.questionImage}"),
              Text("QA: ${myQuestion.questionAnswer}"),
            ],
          ),
        ),
      ),
    );
  }
}

The full code for the demo example:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: const MyHomePage());
  }
}

class Question {
  late String? questionText;
  late String? questionImage;
  late bool? questionAnswer;

  Question({
    required this.questionText,
    required this.questionImage,
    required this.questionAnswer,
  });
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Question myQuestion = Question(
    questionText: "Is this a question?",
    questionImage: "path/to/image.png",
    questionAnswer: false,
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Example")),
      body: SingleChildScrollView(
        child: Padding(
          padding: EdgeInsets.all(20.0),
          child: Column(
            children: [
              Text("QT: ${myQuestion.questionText}"),
              Text("QI: ${myQuestion.questionImage}"),
              Text("QA: ${myQuestion.questionAnswer}"),
            ],
          ),
        ),
      ),
    );
  }
}

Hope this helps.

发布评论

评论列表(0)

  1. 暂无评论