微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在flutter ios应用程序中识别空值

如何解决无法在flutter ios应用程序中识别空值

我正在尝试调试我用 Flutter 编写的 ios 应用程序。 android 版本运行良好,但 ios 版本在通过按下按钮进入特定屏幕时似乎不断吐槽。错误是:

抛出另一个异常:FormatException: Invalid number (at character 1)

我的研究表明页面上的某处有一个空值,但我看不到它,而且我无法弄清楚如何在 Android Studio 的 ios 模拟器中进行调试。有人可以推荐吗?

我要去的页面代码如下:

//1) fO2(default to 4.76)
//2) Bar vs PSI?? Probably in V2
//3) Owner Name
import 'package:ccrchecklist/main.dart';
import 'package:Flutter/material.dart';
import './myUtils.dart';

class settingsPage extends StatefulWidget {
  @override
  _settingsPage createState() => _settingsPage();

}

class _settingsPage extends State{
  final _name = TextEditingController(text: myUtils.getSharedPref('name'));

  int _radioBarPSIValue = int.parse(myUtils.getSharedPref('bar'));
  int _radioDecimalValue = int.parse(myUtils.getSharedPref('decimal'));


  final _formKey = GlobalKey<FormState>();
  bool _validator1 = false;
  bool _validator2 = false;
  bool _validator3 = false;

  String name = '';


  void _handleBarPSIRadiovalueChange(int value) {
    setState(() {
      _radioBarPSIValue = value;
      print("Setting Bar PSI");
      switch (_radioBarPSIValue) {
        case 0:
          myUtils.setSharedPref('bar','0');  //Set to Bar
          break;
        case 1:
          myUtils.setSharedPref('bar','1');  //Set to PSI
          break;
      }
    });
  }
  void _handleDecimalRadiovalueChange(int value) {
    setState(() {
      _radioDecimalValue = value;
      print("Setting Bar PSI");
      switch (_radioDecimalValue) {
        case 0:
          myUtils.setSharedPref('decimal','0');  //Set to Bar
          break;
        case 1:
          myUtils.setSharedPref('decimal','1');  //Set to PSI
          break;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: ListView(
          padding: EdgeInsets.symmetric(horizontal: 24.0),children: <Widget>[
            SizedBox(height: 120.0),//Name
            Form(
              key: _formKey,child: Column(
                children: <Widget>[
                  //Name field
                  new TextFormField(
                    keyboardType: TextInputType.text,controller: _name,autovalidate: _validator1,decoration: const Inputdecoration(
                      icon: Icon(Icons.person),hintText: 'Your Name',labelText: 'Name',),onChanged: (String value) {
                      name = _name.text;
                      setState(() {
                        _validator1 = true;
                      });
                    },validator: (String value) {
                      if(value.isEmpty){
                        return "Field is required";
                      }
                      else {
                        return null;
                      }
                    },//Bar or PSI
                  Row(
                    children: <Widget>[
                      Radio(
                        value: 0,groupValue: _radioBarPSIValue,onChanged: _handleBarPSIRadiovalueChange,Text(
                        'Bar',style: new TextStyle(fontSize: 16.0),Radio(
                        value: 1,Text(
                        'PSI',]
                  ),buttonbar(
                    children: <Widget>[
                      //Clear Button
                      FlatButton(
                        child: Text('Cancel'),onpressed: () {
                          Navigator.push(
                            context,MaterialPageRoute(builder: (context) => HomeScreen()),);
                        },RaisedButton(
                        child: Text('SAVE'),onpressed: () {
                          print(name);
                          _handleBarPSIRadiovalueChange(_radioBarPSIValue);
                          if(name != '')
                            myUtils.setSharedPref('name',name);
                          Navigator.push(
                            context,);
                        }
                      ),]
            ),],])));
  }
}```

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。