その他

ランダムな値を表示する

ランダムな値を表示する

ランダムな値を表示するためには、まず乱数を発生させる必要があります。

乱数を使用するためには Random クラスを使います。

 Random クラスは、 math ライブラリをインポートすることで使用できます。

import 'dart:math' as math; //mathライブラリのインポート

void main() {
  var random = math.Random();
  print(random.nextInt(10)); //0 ~ 9 をランダムに出力
}

 

nextInt メソッドに乱数の最大値を渡します。

※なお指定する最大値は、返り値に含まれません。

 

これを応用して、ボタンを押すとランダムな文字を表示するアプリを作ってみました。

サンプルコード

import 'package:flutter/material.dart';
import 'dart:math' as math; //randomを使うためのライブラリをインポート


void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'ネコでもわかるFlutter大辞典'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var fruits = ['apple','banana','peach','lemon','orange','cherry','watermelon','kiwifruit','grape'];
  var random = math.Random();
  var result;

  void _shuffle() {
    setState(() {
      result = fruits[random.nextInt(fruits.length)];
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),

      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text("ボタンを押すとランダムな文字を表示します。"),
            FloatingActionButton(
              onPressed: _shuffle,
              child: Icon(Icons.shuffle),
            ),
          Text(
            '$result'
          ),
          ],
        ),
      ),
    );
  }
}