Flutter 设置时间选择器并使用http请求触发设置时间

Flutter 设置时间选择器并使用http请求触发设置时间,flutter,Flutter,您好,我想问一下如何在我的时间选择器中触发我的设置时间,并在触发设置时间时发出http请求 导入“dart:async” import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget bui

您好,我想问一下如何在我的时间选择器中触发我的设置时间,并在触发设置时间时发出http请求 导入“dart:async”

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(

        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);


  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}
//这里的代码用于获取用户想要的时间

class _MyHomePageState extends State<MyHomePage> {
  TimeOfDay _time = TimeOfDay.now();
  TimeOfDay picked;
  Future<Null> selectTime(BuildContext context) async {
    picked = await showTimePicker(
    context: context, 
    initialTime: _time,
    );
    setState(() {
     print(_time);
      print(picked);

    });

  }
class\u MyHomePageState扩展状态{
TimeOfDay _time=TimeOfDay.now();
采摘时间;
Future selectTime(构建上下文)异步{
拾取=等待显示时间选择器(
上下文:上下文,
初始时间:_时间,
);
设置状态(){
打印时间;
打印(已拾取);
});
}

请查看以下代码。使用时间选择器设置时间时,会发出网络请求,并在可用时显示结果

main.dart

import 'package:flutter/material.dart';
import 'package:timepicker/post.dart';
import 'package:timepicker/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TimeOfDay _selectedTime = TimeOfDay.now();
  String postTitle = "";

  Future<Null> selectTime(BuildContext context) async {
    TimeOfDay picked = await showTimePicker(
      context: context,
      initialTime: _selectedTime,
    );
    if (picked != null && picked != _selectedTime) {
      print(picked);
      Post post = await getPost();
      setState(() {
        _selectedTime = picked;
        postTitle = post.title;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text("${_selectedTime.toString()}"),
            SizedBox(
              height: 20,
            ),
            RaisedButton(
              onPressed: () => selectTime(context),
              child: Text("Select time"),
            ),
            SizedBox(
              height: 20,
            ),
            Text('$postTitle'),
          ],
        ),
      ),
    );
  }
}
import 'dart:convert';

Post postFromJson(String str) => Post.fromJson(json.decode(str));

String postToJson(Post data) => json.encode(data.toJson());

class Post {
  int userId;
  int id;
  String title;
  String body;

  Post({
    this.userId,
    this.id,
    this.title,
    this.body,
  });

  factory Post.fromJson(Map<String, dynamic> json) => Post(
        userId: json["userId"],
        id: json["id"],
        title: json["title"],
        body: json["body"],
      );

  Map<String, dynamic> toJson() => {
        "userId": userId,
        "id": id,
        "title": title,
        "body": body,
      };
}
import 'package:timepicker/post.dart';
import 'package:http/http.dart' as http;

String url = 'https://jsonplaceholder.typicode.com/posts';

Future<Post> getPost() async {
  final response = await http.get('$url/1');
  return postFromJson(response.body);
}
导入“包装:颤振/材料.省道”;
导入“package:timepicker/post.dart”;
导入“包:timepicker/services.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(标题:“颤振演示主页”),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key,this.title}):超级(Key:Key);
最后的字符串标题;
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
TimeOfDay _selectedTime=TimeOfDay.now();
字符串postTitle=“”;
Future selectTime(构建上下文)异步{
拾取的时间=等待显示时间选择器(
上下文:上下文,
初始时间:\您选择的时间,
);
如果(已拾取!=null&&picked!=\u selectedTime){
打印(已拾取);
Post Post=等待获取Post();
设置状态(){
_selectedTime=已拾取;
postTitle=post.title;
});
}
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:中(
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
文本(${u selectedTime.toString()}),
大小盒子(
身高:20,
),
升起的按钮(
按下时:()=>选择时间(上下文),
子项:文本(“选择时间”),
),
大小盒子(
身高:20,
),
文本(“$postTitle”),
],
),
),
);
}
}
后省道

import 'package:flutter/material.dart';
import 'package:timepicker/post.dart';
import 'package:timepicker/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TimeOfDay _selectedTime = TimeOfDay.now();
  String postTitle = "";

  Future<Null> selectTime(BuildContext context) async {
    TimeOfDay picked = await showTimePicker(
      context: context,
      initialTime: _selectedTime,
    );
    if (picked != null && picked != _selectedTime) {
      print(picked);
      Post post = await getPost();
      setState(() {
        _selectedTime = picked;
        postTitle = post.title;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text("${_selectedTime.toString()}"),
            SizedBox(
              height: 20,
            ),
            RaisedButton(
              onPressed: () => selectTime(context),
              child: Text("Select time"),
            ),
            SizedBox(
              height: 20,
            ),
            Text('$postTitle'),
          ],
        ),
      ),
    );
  }
}
import 'dart:convert';

Post postFromJson(String str) => Post.fromJson(json.decode(str));

String postToJson(Post data) => json.encode(data.toJson());

class Post {
  int userId;
  int id;
  String title;
  String body;

  Post({
    this.userId,
    this.id,
    this.title,
    this.body,
  });

  factory Post.fromJson(Map<String, dynamic> json) => Post(
        userId: json["userId"],
        id: json["id"],
        title: json["title"],
        body: json["body"],
      );

  Map<String, dynamic> toJson() => {
        "userId": userId,
        "id": id,
        "title": title,
        "body": body,
      };
}
import 'package:timepicker/post.dart';
import 'package:http/http.dart' as http;

String url = 'https://jsonplaceholder.typicode.com/posts';

Future<Post> getPost() async {
  final response = await http.get('$url/1');
  return postFromJson(response.body);
}
导入'dart:convert';
Post-postFromJson(String-str)=>Post.fromJson(json.decode(str));
字符串postToJson(Post data)=>json.encode(data.toJson());
班岗{
int用户标识;
int-id;
字符串标题;
弦体;
职位({
这个.userId,
这个身份证,
这个名字,
这个,身体,,
});
工厂Post.fromJson(映射json)=>Post(
userId:json[“userId”],
id:json[“id”],
标题:json[“标题”],
body:json[“body”],
);
映射到JSON()=>{
“userId”:userId,
“id”:id,
“头衔”:头衔,
“身体”:身体,
};
}
服务。dart

import 'package:flutter/material.dart';
import 'package:timepicker/post.dart';
import 'package:timepicker/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TimeOfDay _selectedTime = TimeOfDay.now();
  String postTitle = "";

  Future<Null> selectTime(BuildContext context) async {
    TimeOfDay picked = await showTimePicker(
      context: context,
      initialTime: _selectedTime,
    );
    if (picked != null && picked != _selectedTime) {
      print(picked);
      Post post = await getPost();
      setState(() {
        _selectedTime = picked;
        postTitle = post.title;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text("${_selectedTime.toString()}"),
            SizedBox(
              height: 20,
            ),
            RaisedButton(
              onPressed: () => selectTime(context),
              child: Text("Select time"),
            ),
            SizedBox(
              height: 20,
            ),
            Text('$postTitle'),
          ],
        ),
      ),
    );
  }
}
import 'dart:convert';

Post postFromJson(String str) => Post.fromJson(json.decode(str));

String postToJson(Post data) => json.encode(data.toJson());

class Post {
  int userId;
  int id;
  String title;
  String body;

  Post({
    this.userId,
    this.id,
    this.title,
    this.body,
  });

  factory Post.fromJson(Map<String, dynamic> json) => Post(
        userId: json["userId"],
        id: json["id"],
        title: json["title"],
        body: json["body"],
      );

  Map<String, dynamic> toJson() => {
        "userId": userId,
        "id": id,
        "title": title,
        "body": body,
      };
}
import 'package:timepicker/post.dart';
import 'package:http/http.dart' as http;

String url = 'https://jsonplaceholder.typicode.com/posts';

Future<Post> getPost() async {
  final response = await http.get('$url/1');
  return postFromJson(response.body);
}
import'package:timepicker/post.dart';
将“package:http/http.dart”导入为http;
字符串url='0https://jsonplaceholder.typicode.com/posts';
Future getPost()异步{
最终响应=等待http.get(“$url/1”);
返回postFromJson(response.body);
}

当时间到达时,它将触发http请求?嗨,先生,对不起,我错过了我的问题,当我发布它时,我忘记放置我的应用程序就像闹钟一样,当设置的时间到达时,它将触发请求哦..将相应地更改此设置tommorowOkay先生,对不起,我几乎忘记了它,您能帮我吗?