最近 Flutter を始めた者です。
C 言語の経験が数年あるぐらいで Java などは未経験です。
Android の実機でデバッグできる所までは、できたのですが
サンプルコードを少し編集しただけでエラーが出たり
意図通りに動かず困っています。
○ 前提・実現したいこと
AndroidStudio で新規でプロジェクトを作成した時の
カウンターアプリ (+ボタンを押すと数値が増えるやつ)
の編集し、mp3 再生をしたい
○ 発生している問題・エラーメッセージ
onPressed の部分をいじるとエラーが出ます。
○ 該当のソースコード
以下の通りです。
○ 自分で調べたことや試したこと
web で onPressed で検索し、いくつかのコードを見ましたが理解できませんでした
○ 使っているツールのバージョンなど補足情報
AndroidStudio
Flutter
どのように編集すべきか、教えて頂きたいです。
よろしくお願いします。
flutter
1 2 floatingActionButton: FloatingActionButton( 3 onPressed: () { 4 _incrementCounter; 5 assetsAudioPlayer.open( // add 6 Audio('assets/Alarm08.mp3'), 7 autoStart: true, 8 ); 9 }, 10 tooltip: 'Increment',
mp3 は再生されるが、なぜかカウンタが増えない
flutter
1 floatingActionButton: FloatingActionButton( 2 onPressed: _incrementCounter, 3 tooltip: 'Increment',
編集していない状態
flutter
1 floatingActionButton: FloatingActionButton( 2 onPressed: { 3 _incrementCounter, 4 }, 5 tooltip: 'Increment',
_incrementCounter をカッコで囲ってみる → エラー
lib/main.dart:64:20: Error: The argument type 'Set<void Function()>' can't be assigned to the parameter type 'void Function()'.
flutter
1 floatingActionButton: FloatingActionButton( 2 onPressed: () { 3 _incrementCounter, 4 }, 5 tooltip: 'Increment',
onPressed に () を付ける → エラー
lib/main.dart:65:11: Error: Expected ';' after this.
flutter
1 floatingActionButton: FloatingActionButton( 2 onPressed: () { 3 _incrementCounter; 4 },
エラーは無く、実行可能だが、ボタンを押してもカウンタが増えない
以下が現在のコードです。
flutter
1 2import 'package:flutter/material.dart'; 3import 'package:assets_audio_player/assets_audio_player.dart'; // add 4 5// ローカルの assets フォルダの mp3 は鳴ったが _incrementCounter が実行されない 6 7void main() { 8 runApp(MyApp()); 9} 10 11class MyApp extends StatelessWidget { 12 @override 13 Widget build(BuildContext context) { 14 return MaterialApp( 15 title: 'Flutter Demo', 16 theme: ThemeData( 17 primarySwatch: Colors.blue, 18 visualDensity: VisualDensity.adaptivePlatformDensity, 19 ), 20 home: MyHomePage(title: 'Flutter Demo Home Page'), 21 ); 22 } 23} 24 25class MyHomePage extends StatefulWidget { 26 MyHomePage({Key key, this.title}) : super(key: key); 27 28 final String title; 29 30 @override 31 _MyHomePageState createState() => _MyHomePageState(); 32} 33 34class _MyHomePageState extends State<MyHomePage> { 35 int _counter = 0; 36 final assetsAudioPlayer = AssetsAudioPlayer(); // add 37 38 void _incrementCounter() { 39 setState(() { 40 _counter++; 41 }); 42 } 43 44 @override 45 Widget build(BuildContext context) { 46 return Scaffold( 47 appBar: AppBar( 48 title: Text(widget.title), 49 ), 50 body: Center( 51 child: Column( 52 mainAxisAlignment: MainAxisAlignment.center, 53 children: <Widget>[ 54 Text( 55 'You have pushed the button this many times:', 56 ), 57 Text( 58 '$_counter', 59 style: Theme.of(context).textTheme.headline4, 60 ), 61 ], 62 ), 63 ), 64 floatingActionButton: FloatingActionButton( 65 onPressed: () { 66 _incrementCounter; 67 assetsAudioPlayer.open( // add 68 Audio('assets/Alarm08.mp3'), 69 autoStart: true, 70 ); 71 72 }, 73 tooltip: 'Increment', 74 child: Icon(Icons.add), 75 ), // This trailing comma makes auto-formatting nicer for build methods. 76 ); 77 } 78} 79 80 81
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。