String 如何在flatter中创建带字符串的条件语句?
我正在尝试在android studio 3.5.2上创建一个具有颤振功能的应用程序,所有内容都已完全更新 概念是这样的,有一个文本字段和一个提交按钮, 在submit按钮中,三个字符串/文本必须有效才能进入 如果有人键入了一个与之不匹配的单词,则会显示没有单词存在 比如说, 字符串-菲律宾、迪拜、日本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, }
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';
});
}
}
}