Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 方法';getQuotes';在null上调用了。接收方:null尝试调用:getQuotes()_Android_Ios_Json_Flutter_Dart - Fatal编程技术网

Android 方法';getQuotes';在null上调用了。接收方:null尝试调用:getQuotes()

Android 方法';getQuotes';在null上调用了。接收方:null尝试调用:getQuotes(),android,ios,json,flutter,dart,Android,Ios,Json,Flutter,Dart,我对Flatter不熟悉,并尝试使用以下格式从API解析JSON数据: 我的颤振课程如下: import 'dart:core'; import 'dart:io'; import 'package:flutter/material.dart'; import 'dart:async'; import 'package:http/http.dart' as http; import 'dart:convert'; const url = 'myapiurl'; class Eng

我对Flatter不熟悉,并尝试使用以下格式从API解析JSON数据:



我的颤振课程如下:

import 'dart:core';
import 'dart:io';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:http/http.dart' as http;
import 'dart:convert';

const url =
    'myapiurl';

class EnglishDatabase {
  Map<int, Map<String, String>> data = new Map();
  int dataLength = 0;
  List<String> temp;
  EnglishDatabase();

  void getData() async {
    Map<int, Map<String, String>> s;
    try {
      http.Response r = await http.get(url);
      if (r.statusCode == 200) {
        s = jsonDecode(r.body);
        data.addAll(s);
        dataLength = s.length;
      }
    } catch (e) {
      print(e);
    }
  }

  void returnQuotes() async {
    await getData();
    for (int i = 0; i < data.length; i++) {
      temp.add(data[i]['quote']);
    }
  }

  Iterable<String> getQuotes() {
    returnQuotes();
    return temp.reversed;
  }

  int getQuotesLength() {
    return dataLength;
  }
}

import 'dart:core';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:quotes_flutter_stories/Database/EnglishQuoteData.dart';
import 'dart:async';
import 'Themes.dart';
import 'package:http/http.dart' as http;
import 'package:share/share.dart';
import 'main.dart';
//import 'package:quotes_flutter_stories/Database/EnglishQuoteData.dart';

EnglishDatabase _englishData;

class EnglishScreen extends StatefulWidget {
  @override
  _EnglishScreenState createState() => _EnglishScreenState();
}

class _EnglishScreenState extends State<EnglishScreen> {
  Iterable<String> englishQuotes;
  @override
  void initState() {
    englishQuotes = _englishData.getQuotes();
    super.initState();
  }

  List<String> englishStories = [
    '\"Try not to become a man of success. Rather become a man of value.\" \nAlbert Einstein',
    '\"Successful people do what unsuccessful people are not willing to do. Don\'t wish it were easier; wish you were better.\" \nJim Rohn',
    '\"I find that the harder I work; the more luck I seem to have.\" \nThomas Jefferson',
    '\"Don\'t be afraid to give up the good to go for the great.\" \nJohn D. Rockefeller',
    '\"Opportunities don\'t happen. You create them.\" \nChris Grosser',
    '\"It is better to fail in originality than to succeed in imitation.\" \nHerman Melville',
  ];

  Widget _buildRowQ(String englishQuote) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishQuote.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishQuote),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => QuotePage(englishQ: englishQuote)));
      },
    );
  }

  Widget _buildRowF(String englishFavourite) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishFavourite.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishFavourite),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) =>
                    FavouritePage(englishF: englishFavourite)));
      },
    );
  }

  Widget _buildRowS(String englishQuote) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishQuote.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishQuote),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => StoryPage(englishS: englishQuote)));
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    final List<String> _menuitems = ["Change Language", "Rate US", "About Us"];
    return MaterialApp(
      theme: mainTheme,
      home: DefaultTabController(
        length: 3,
        child: Scaffold(
          appBar: AppBar(
            title: Text('Quotes & Stories'),
            actions: <Widget>[
              DropdownButton(
                icon: Icon(Icons.menu),
                items: _menuitems
                    .map((value) => DropdownMenuItem(
                          child: Text(value),
                          value: value,
                        ))
                    .toList(),
                onChanged: (String value) {
                  setState(() {
                    if (value == _menuitems[0]) {
                      Navigator.pushReplacement(
                          context,
                          MaterialPageRoute(
                              builder: (context) => LanguageSelection()));
                    } else if (value == _menuitems[1]) {
                      Navigator.push(context,
                          MaterialPageRoute(builder: (context) => RatePage()));
                    } else if (value == _menuitems[2]) {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => AboutUsPage()));
                    }
                  });
                },
                isExpanded: false,
              ),
              SizedBox(
                width: 20.0,
              ),
            ],
            bottom: TabBar(
              tabs: <Widget>[
                Tab(
                  text: 'Quotes',
                ),
                Tab(
                  text: 'Favourites',
                ),
                Tab(
                  text: 'Stories',
                ),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              englishQuotes.isEmpty
                  ? Center(
                      child: Text('No Quotes'),
                    )
                  : ListView.builder(
                      itemCount: _englishData.getQuotesLength(),
                      padding: const EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowQ(englishQuotes.elementAt(i));
                      },
                    ),
              favourites.isEmpty
                  ? Center(
                      child: Text('No Favourites'),
                    )
                  : ListView.builder(
                      itemCount: favourites.length,
                      padding: EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowF(favourites[i]);
                      },
                    ),
              englishStories.isEmpty
                  ? Center(
                      child: Text('No Stories'),
                    )
                  : ListView.builder(
                      itemCount: englishStories.length,
                      padding: EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowS(englishStories[i]);
                      },
                    ),
            ],
          ),
        ),
      ),
    );
  }
}

class StoryPage extends StatefulWidget {
  final String englishS;
  StoryPage({Key key, @required this.englishS}) : super(key: key);
  @override
  _StoryPageState createState() => _StoryPageState();
}

class _StoryPageState extends State<StoryPage> {
  @override
  Widget build(BuildContext context) {
    String englishStory = widget.englishS;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('English Story')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishStory,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishStory)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color:
                          favourites.contains(englishStory) ? Colors.red : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishStory))
                            favourites.remove(englishStory);
                          else
                            favourites.add(englishStory);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        await Share.share(englishStory);
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class QuotePage extends StatefulWidget {
  final String englishQ;
  QuotePage({Key key, @required this.englishQ}) : super(key: key);
  @override
  _QuotePageState createState() => _QuotePageState();
}

class _QuotePageState extends State<QuotePage> {
  @override
  Widget build(BuildContext context) {
    String englishQuote = widget.englishQ;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('English Quote')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishQuote,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishQuote)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color:
                          favourites.contains(englishQuote) ? Colors.red : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishQuote))
                            favourites.remove(englishQuote);
                          else
                            favourites.add(englishQuote);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        if (Platform.isAndroid) {
                          await Share.share(englishQuote);
                        }
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class FavouritePage extends StatefulWidget {
  final String englishF;
  FavouritePage({Key key, @required this.englishF}) : super(key: key);
  @override
  _FavouritePageState createState() => _FavouritePageState();
}

class _FavouritePageState extends State<FavouritePage> {
  @override
  Widget build(BuildContext context) {
    String englishFavourite = widget.englishF;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('Favourite')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishFavourite,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishFavourite)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color: favourites.contains(englishFavourite)
                          ? Colors.red
                          : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishFavourite))
                            favourites.remove(englishFavourite);
                          else
                            favourites.add(englishFavourite);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        await Share.share(englishFavourite);
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
导入“dart:core”;
导入“dart:io”;
进口“包装:颤振/材料.省道”;
导入“dart:async”;
将“package:http/http.dart”导入为http;
导入“dart:convert”;
常量url=
“myapiurl”;
类英语数据库{
地图数据=新地图();
int dataLength=0;
列表温度;
英语数据库();
void getData()异步{
地图s;
试一试{
Response r=wait http.get(url);
如果(r.statusCode==200){
s=jsonDecode(r.body);
数据。添加所有数据;
dataLength=s.length;
}
}捕获(e){
印刷品(e);
}
}
void returnQuotes()异步{
等待getData();
对于(int i=0;i
我调用这个来显示数据的类如下:

import 'dart:core';
import 'dart:io';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:http/http.dart' as http;
import 'dart:convert';

const url =
    'myapiurl';

class EnglishDatabase {
  Map<int, Map<String, String>> data = new Map();
  int dataLength = 0;
  List<String> temp;
  EnglishDatabase();

  void getData() async {
    Map<int, Map<String, String>> s;
    try {
      http.Response r = await http.get(url);
      if (r.statusCode == 200) {
        s = jsonDecode(r.body);
        data.addAll(s);
        dataLength = s.length;
      }
    } catch (e) {
      print(e);
    }
  }

  void returnQuotes() async {
    await getData();
    for (int i = 0; i < data.length; i++) {
      temp.add(data[i]['quote']);
    }
  }

  Iterable<String> getQuotes() {
    returnQuotes();
    return temp.reversed;
  }

  int getQuotesLength() {
    return dataLength;
  }
}

import 'dart:core';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:quotes_flutter_stories/Database/EnglishQuoteData.dart';
import 'dart:async';
import 'Themes.dart';
import 'package:http/http.dart' as http;
import 'package:share/share.dart';
import 'main.dart';
//import 'package:quotes_flutter_stories/Database/EnglishQuoteData.dart';

EnglishDatabase _englishData;

class EnglishScreen extends StatefulWidget {
  @override
  _EnglishScreenState createState() => _EnglishScreenState();
}

class _EnglishScreenState extends State<EnglishScreen> {
  Iterable<String> englishQuotes;
  @override
  void initState() {
    englishQuotes = _englishData.getQuotes();
    super.initState();
  }

  List<String> englishStories = [
    '\"Try not to become a man of success. Rather become a man of value.\" \nAlbert Einstein',
    '\"Successful people do what unsuccessful people are not willing to do. Don\'t wish it were easier; wish you were better.\" \nJim Rohn',
    '\"I find that the harder I work; the more luck I seem to have.\" \nThomas Jefferson',
    '\"Don\'t be afraid to give up the good to go for the great.\" \nJohn D. Rockefeller',
    '\"Opportunities don\'t happen. You create them.\" \nChris Grosser',
    '\"It is better to fail in originality than to succeed in imitation.\" \nHerman Melville',
  ];

  Widget _buildRowQ(String englishQuote) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishQuote.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishQuote),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => QuotePage(englishQ: englishQuote)));
      },
    );
  }

  Widget _buildRowF(String englishFavourite) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishFavourite.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishFavourite),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) =>
                    FavouritePage(englishF: englishFavourite)));
      },
    );
  }

  Widget _buildRowS(String englishQuote) {
    return new ListTile(
      leading: Container(
        decoration: new BoxDecoration(
          color: Colors.orangeAccent,
          borderRadius: new BorderRadius.circular(4.0),
        ),
        padding: new EdgeInsets.all(4.0),
        height: 30.0,
        width: 30.0,
        child: new Text(
          englishQuote.substring(1, 2),
          textAlign: TextAlign.center,
        ),
      ),
      title: new Text(englishQuote),
      subtitle: new Divider(
        height: 20.0,
        color: Colors.black,
      ),
      onTap: () {
        Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => StoryPage(englishS: englishQuote)));
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    final List<String> _menuitems = ["Change Language", "Rate US", "About Us"];
    return MaterialApp(
      theme: mainTheme,
      home: DefaultTabController(
        length: 3,
        child: Scaffold(
          appBar: AppBar(
            title: Text('Quotes & Stories'),
            actions: <Widget>[
              DropdownButton(
                icon: Icon(Icons.menu),
                items: _menuitems
                    .map((value) => DropdownMenuItem(
                          child: Text(value),
                          value: value,
                        ))
                    .toList(),
                onChanged: (String value) {
                  setState(() {
                    if (value == _menuitems[0]) {
                      Navigator.pushReplacement(
                          context,
                          MaterialPageRoute(
                              builder: (context) => LanguageSelection()));
                    } else if (value == _menuitems[1]) {
                      Navigator.push(context,
                          MaterialPageRoute(builder: (context) => RatePage()));
                    } else if (value == _menuitems[2]) {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => AboutUsPage()));
                    }
                  });
                },
                isExpanded: false,
              ),
              SizedBox(
                width: 20.0,
              ),
            ],
            bottom: TabBar(
              tabs: <Widget>[
                Tab(
                  text: 'Quotes',
                ),
                Tab(
                  text: 'Favourites',
                ),
                Tab(
                  text: 'Stories',
                ),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              englishQuotes.isEmpty
                  ? Center(
                      child: Text('No Quotes'),
                    )
                  : ListView.builder(
                      itemCount: _englishData.getQuotesLength(),
                      padding: const EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowQ(englishQuotes.elementAt(i));
                      },
                    ),
              favourites.isEmpty
                  ? Center(
                      child: Text('No Favourites'),
                    )
                  : ListView.builder(
                      itemCount: favourites.length,
                      padding: EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowF(favourites[i]);
                      },
                    ),
              englishStories.isEmpty
                  ? Center(
                      child: Text('No Stories'),
                    )
                  : ListView.builder(
                      itemCount: englishStories.length,
                      padding: EdgeInsets.all(10.0),
                      itemBuilder: (context, i) {
                        return _buildRowS(englishStories[i]);
                      },
                    ),
            ],
          ),
        ),
      ),
    );
  }
}

class StoryPage extends StatefulWidget {
  final String englishS;
  StoryPage({Key key, @required this.englishS}) : super(key: key);
  @override
  _StoryPageState createState() => _StoryPageState();
}

class _StoryPageState extends State<StoryPage> {
  @override
  Widget build(BuildContext context) {
    String englishStory = widget.englishS;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('English Story')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishStory,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishStory)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color:
                          favourites.contains(englishStory) ? Colors.red : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishStory))
                            favourites.remove(englishStory);
                          else
                            favourites.add(englishStory);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        await Share.share(englishStory);
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class QuotePage extends StatefulWidget {
  final String englishQ;
  QuotePage({Key key, @required this.englishQ}) : super(key: key);
  @override
  _QuotePageState createState() => _QuotePageState();
}

class _QuotePageState extends State<QuotePage> {
  @override
  Widget build(BuildContext context) {
    String englishQuote = widget.englishQ;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('English Quote')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishQuote,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishQuote)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color:
                          favourites.contains(englishQuote) ? Colors.red : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishQuote))
                            favourites.remove(englishQuote);
                          else
                            favourites.add(englishQuote);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        if (Platform.isAndroid) {
                          await Share.share(englishQuote);
                        }
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

class FavouritePage extends StatefulWidget {
  final String englishF;
  FavouritePage({Key key, @required this.englishF}) : super(key: key);
  @override
  _FavouritePageState createState() => _FavouritePageState();
}

class _FavouritePageState extends State<FavouritePage> {
  @override
  Widget build(BuildContext context) {
    String englishFavourite = widget.englishF;
    return MaterialApp(
      theme: mainTheme,
      home: Scaffold(
        appBar: AppBar(
          title: Center(child: Text('Favourite')),
        ),
        body: Center(
          child: Container(
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("images/1.jfif"),
                fit: BoxFit.cover,
              ),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Container(),
                SizedBox(
                  height: 250.0,
                ),
                Text(
                  englishFavourite,
                  textAlign: TextAlign.center,
                ),
                SizedBox(
                  height: 185.0,
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    IconButton(
                      icon: favourites.contains(englishFavourite)
                          ? Icon(Icons.favorite)
                          : Icon(Icons.favorite_border),
                      color: favourites.contains(englishFavourite)
                          ? Colors.red
                          : null,
                      onPressed: () {
                        setState(() {
                          if (favourites.contains(englishFavourite))
                            favourites.remove(englishFavourite);
                          else
                            favourites.add(englishFavourite);
                        });
                      },
                    ),
                    IconButton(
                      icon: Icon(Icons.share),
                      onPressed: () async {
                        await Share.share(englishFavourite);
                      },
                    )
                  ],
                ),
                SizedBox(
                  height: 15.0,
                ),
                FlatButton(
                  child: Container(
                    width: double.infinity,
                    height: 40.0,
                    child: Center(
                      child: Text('Back'),
                    ),
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
导入“dart:core”;
导入“dart:io”;
进口“包装:颤振/材料.省道”;
导入“package:quotes_flatter_stories/Database/EnglishQuoteData.dart”;
导入“dart:async”;
导入“Themes.dart”;
将“package:http/http.dart”导入为http;
导入“package:share/share.dart”;
导入“main.dart”;
//导入“package:quotes_flatter_stories/Database/EnglishQuoteData.dart”;
英语数据库;
类EnglishScreen扩展StatefulWidget{
@凌驾
_EnglishScreenState createState()=>\u EnglishScreenState();
}
类_englishscrenstate扩展状态{
易懂的英语语录;
@凌驾
void initState(){
englishQuotes=_englishData.getQuotes();
super.initState();
}
列出英语故事=[
“\”不要成为一个成功的人,而要成为一个有价值的人。\“\n爱因斯坦”,
“\”成功的人做那些不成功的人不愿意做的事。不要希望事情更容易,希望你更好。\“\nJim Rohn”,
“\”我发现我工作越努力,我似乎就越幸运。\“\n托马斯·杰斐逊”,
“\”不要害怕放弃美好,去追求伟大。\“\nJohn D.洛克菲勒”,
“\”机会不会发生,是你创造的。\“\nChris Grosser”,
“\”与其模仿成功,不如创新失败。\“\nHerman Melville”,
];
Widget_buildRowQ(字符串英文引号){
返回新的ListTile(
领先:集装箱(
装饰:新盒子装饰(
颜色:Colors.orangeacent,
边界半径:新边界半径。圆形(4.0),
),
填充:新边缘设置。全部(4.0),
身高:30.0,
宽度:30.0,
儿童:新文本(
子串(1,2),
textAlign:textAlign.center,
),
),
标题:新文本(英文),
副标题:新分隔符(
身高:20.0,
颜色:颜色,黑色,
),
onTap:(){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>QuotePage(englishQ:englishQuote));
},
);
}
Widget_buildRowF(字符串englishFavourite){
返回新的ListTile(
领先:集装箱(
装饰:新盒子装饰(
颜色:Colors.orangeacent,
边界半径:新边界半径。圆形(4.0),
),
填充:新边缘设置。全部(4.0),
身高:30.0,
宽度:30.0,
儿童:新文本(
英式乳化剂。子串(1,2),
textAlign:textAlign.center,
),
),
标题:新文本(英语),
副标题:新分隔符(
身高:20.0,
颜色:颜色,黑色,
),
onTap:(){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>
收藏夹页面(英语HF:englishFavourite));
},
);
}
小部件构建行(字符串英文引号){
返回新的ListTile(
领先:集装箱(
装饰:新盒子装饰(
颜色:Colors.orangeacent,
边界半径:新边界半径。圆形(4.0),
),
填充:新边缘设置。全部(4.0),
身高:30.0,
宽度:30.0,
儿童:新文本(
子串(1,2),
textAlign:textAlign.center,
),
),
标题:新文本(英文),
副标题:新分隔符(
身高:20.0,
颜色:颜色,黑色,
),
onTap:(){
导航器。推(
上下文
材料路线(
生成器:(context)=>StoryPage(英文:englishQuote));
},
);
}
@凌驾
小部件构建(构建上下文){
最终列表_menuitems=[“更改语言”、“评价我们”、“关于我们”];
返回材料PP(
主题:主主题,,
主页:DefaultTabController(
长度:3,
孩子:脚手架(
appBar:appBar(
标题:文本(“引用和故事”),
行动:[
下拉按钮(
图标:图标(图标菜单),
项目:\菜单项
.map((值)=>DropdownMenuItem(
子项:文本(值),
价值:价值,
))
.toList(),
onChanged:(字符串值){
设置状态(){
如果(值==\u菜单项[0]){
导航器。更换(
上下文
材料路线(
生成器:(context)=>LanguageSelection());
}else if(值==\u菜单项[1]){
Navigator.push(上下文,
MaterialPage路由(生成器:(上下文)=>RatePage());
}else if(值==\u菜单项[2]){
List<int> fixedLengthList = new List(5);
fixedLengthList.length = 0;  // Error
fixedLengthList.add(499);    // Error
fixedLengthList[0] = 87;
List<int> growableList = [1, 2];
growableList.length = 0;
growableList.add(499);
growableList[0] = 87;