101 lines
2.9 KiB
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;
|
|
});
|
|
},
|
|
);
|
|
},
|
|
),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
} |