fitness-app/lib/Views/new_workout_view.dart

101 lines
2.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:async';
import 'dart:convert';
class NewWorkoutView extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return new NewWorkoutViewState();
}
}
class WorkoutType{
String id, name, description, type, unit;
WorkoutType(this.id, this.name, this.description, this.type, this.unit);
}
class NewWorkoutViewState extends State<NewWorkoutView>{
List<WorkoutType> data;
List<WorkoutType> selectedExercises = new List();
String selectedExercisesString = "Derzeit ausgewählte übungen: ";
Future<List> getWorkouts() async {
var response = await http.get(
"http://10.16.17.65/api/exercises.php?token=satbwertwhbertnwertwertghwertgwertg",
headers: {
"Accept": "application/json"
}
);
List results = JsonDecoder().convert(response.body);
List<WorkoutType> templist = [];
for(var i = 0; i < results.length; i++){
templist.add(new WorkoutType(results[i]['id'], results[i]['name'], results[i]['description'], results[i]['type'], results[i]['unit']));
}
this.setState(() {
data = templist;
});
print(data);
return data;
}
@override
void initState() {
// TODO: implement initState
getWorkouts();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Erstelle ein neues Workout"),
),
body: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Padding(
padding: EdgeInsets.all(8),
child: TextField(
autocorrect: true,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: "Name des Workouts"
),
),
),
Text(selectedExercisesString),
Expanded(
child: ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index){
return new ListTile(
title: Text(data[index].name),
subtitle: Text(data[index].description),
onTap: (){
setState(() {
if(selectedExercises == null){
selectedExercises = [data[index]];
}else{
selectedExercises.add(data[index]);
}
});
String temp = "Ausgewählte übungen: ";
for (var i = 0; i < selectedExercises.length; i++){
temp = temp + selectedExercises[i].name + ', ';
}
setState(() {
selectedExercisesString = temp;
});
},
);
},
),
)
],
),
);
}
}