String 如何在flatter中创建带字符串的条件语句?

String 如何在flatter中创建带字符串的条件语句?,string,if-statement,flutter,conditional-statements,textfield,String,If Statement,Flutter,Conditional Statements,Textfield,我正在尝试在android studio 3.5.2上创建一个具有颤振功能的应用程序,所有内容都已完全更新 概念是这样的,有一个文本字段和一个提交按钮, 在submit按钮中,三个字符串/文本必须有效才能进入 如果有人键入了一个与之不匹配的单词,则会显示没有单词存在 比如说, 字符串-菲律宾、迪拜、日本 if { textfield does not match string, Show text hint - Does not match data, }

我正在尝试在android studio 3.5.2上创建一个具有颤振功能的应用程序,所有内容都已完全更新

概念是这样的,有一个文本字段和一个提交按钮, 在submit按钮中,三个字符串/文本必须有效才能进入

如果有人键入了一个与之不匹配的单词,则会显示没有单词存在

比如说,

字符串-菲律宾、迪拜、日本

 if { 
       textfield does not match string,
       Show text hint - Does not match data,
    }
 Else
    {
       Welcome from "string"
    }

我还是新手,我知道这不是确切的代码,但我希望有人能帮我翻译颤振代码,感谢任何愿意帮助我的人。

你可以使用三元运算符来解决这个问题,这是一个简单的条件if-else的压缩语法。语法如下:

(some conditional || or other conditional && required conditional)?someMethodToHandleSuccess:someMethodToHandleFailure

(条件)?ifTrue:ifFalse是通用语法。希望这有帮助

声明需要匹配的字符串列表

List<String> mList = ['philippines', 'dubai', 'japan'];
或者正如@Rahul Patel在他的回答中所建议的那样,用三元运算符

mList.contains(myStr) ? print('Welcome from ${myStr}') : print('Does not match data');

试试这个

import 'package:flutter/material.dart';

class Question1 extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _Question1State();
  }
}

class _Question1State extends State<Question1> {
  TextEditingController _textController = TextEditingController();

  String infoText = '';

  List<String> countryList = [
    'philippines',
    'dubai',
    'japan',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Padding(
        padding: EdgeInsets.all(20.0),
        child: Column(
          children: <Widget>[
            TextField(
              controller: _textController,
              decoration: InputDecoration(
                hintText: 'Enter Country',
              ),
            ),
            SizedBox(
              height: 25.0,
            ),
            FlatButton(
              onPressed: () {
                _validateUserInput(_textController.text);
              },
              child: Text('Submit'),
              color: Colors.blue,
            ),
            SizedBox(
              height: 25.0,
            ),
            Text(
              infoText,
              style: TextStyle(color: Colors.red),
            ),
          ],
        ),
      ),
    );
  }

  _validateUserInput(String input) {
    if (!countryList.contains(input.toLowerCase())) {
      setState(() {
        infoText = 'Does not match data';
      });
    } else {
      setState(() {
        infoText = 'Welcome from $input';
      });
    }
  }
}
导入“包装:颤振/材料.省道”;
类Question1扩展了StatefulWidget{
@凌驾
状态createState(){
返回_Question1State();
}
}
类_question1状态扩展状态{
TextEditingController_textController=TextEditingController();
字符串infoText='';
列表国家列表=[
"菲律宾",,
“迪拜”,
"日本",,
];
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
主体:填充物(
填充:所有边缘设置(20.0),
子:列(
儿童:[
文本字段(
控制器:_textController,
装饰:输入装饰(
hintText:'输入国家',
),
),
大小盒子(
身高:25.0,
),
扁平按钮(
已按下:(){
_validateUserInput(_textController.text);
},
子项:文本('Submit'),
颜色:颜色,蓝色,
),
大小盒子(
身高:25.0,
),
正文(
信息文本,
样式:TextStyle(颜色:Colors.red),
),
],
),
),
);
}
_validateUserInput(字符串输入){
如果(!countryList.contains(input.toLowerCase())){
设置状态(){
infoText='不匹配数据';
});
}否则{
设置状态(){
infoText='欢迎来自$input';
});
}
}
}

Ooh,,这很好,,谢谢你给我这个样本,你是一个救生员。我可以问如果有人在没有任何文本输入的情况下按下了提交按钮,我要在这里输入什么代码?这是用于颤振的,对吗?我有点理解这个概念:)
import 'package:flutter/material.dart';

class Question1 extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _Question1State();
  }
}

class _Question1State extends State<Question1> {
  TextEditingController _textController = TextEditingController();

  String infoText = '';

  List<String> countryList = [
    'philippines',
    'dubai',
    'japan',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Padding(
        padding: EdgeInsets.all(20.0),
        child: Column(
          children: <Widget>[
            TextField(
              controller: _textController,
              decoration: InputDecoration(
                hintText: 'Enter Country',
              ),
            ),
            SizedBox(
              height: 25.0,
            ),
            FlatButton(
              onPressed: () {
                _validateUserInput(_textController.text);
              },
              child: Text('Submit'),
              color: Colors.blue,
            ),
            SizedBox(
              height: 25.0,
            ),
            Text(
              infoText,
              style: TextStyle(color: Colors.red),
            ),
          ],
        ),
      ),
    );
  }

  _validateUserInput(String input) {
    if (!countryList.contains(input.toLowerCase())) {
      setState(() {
        infoText = 'Does not match data';
      });
    } else {
      setState(() {
        infoText = 'Welcome from $input';
      });
    }
  }
}