如何在Flutter中创建带字符串条件语句?

new9mtju  于 2022-11-30  发布在  Flutter
关注(0)|答案(3)|浏览(130)

我正在尝试创建一个应用程序与一个flutter在android工作室3. 5. 2,一切都是完全更新,
这个概念是这样的,有一个文本字段,一个提交按钮,在提交按钮中,三个字符串/文本需要有效才能进入,
如果有人键入了一个不匹配的单词,它将显示,没有单词存在,
例如,在一个实施例中,
弦乐-菲律宾、迪拜、日本

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

我还是新来的,我知道这不是确切的代码,但我希望有人能帮我翻译这Flutter代码,谢谢你,谁会帮助。

cnh2zyt3

cnh2zyt31#

试试这个

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';
      });
    }
  }
}
i5desfxk

i5desfxk2#

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

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

然后像这样匹配文本字段字符串,

var myStr = 'dubai';//or your textFieldController.text
    if (mList.contains(myStr)) {
      print('Welcome from ${myStr}');
    } else {
      print('Does not match data');
    }

或者像Rahul Patel在他的回答中建议的那样,您可以通过三元运算符来计算,

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

ax6ht2ek3#

您可以使用三元运算子来解决这个问题,它是条件if else的简单精简语法。语法如下:

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

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

相关问题