Skip to content

Instantly share code, notes, and snippets.

@bubnenkoff
Created July 26, 2019 12:24
Show Gist options
  • Save bubnenkoff/4ac81c1c45f51dfdf0437fda9782d7b9 to your computer and use it in GitHub Desktop.
Save bubnenkoff/4ac81c1c45f51dfdf0437fda9782d7b9 to your computer and use it in GitHub Desktop.
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:http/http.dart' as http;
import 'select_regions.dart';
import 'dart:convert';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
// return MaterialApp(home: HomePage());
return MaterialApp(
home: ChangeNotifierProvider<StateGetTestData>(
builder: (_) => StateGetTestData(),
child: HomePage()
),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(appBar: AppBar(), body: MyContainer());
}
}
class MyContainer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
// crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
GetTestData(),
SelectRegions()
],
);
}
}
class GetTestData extends StatefulWidget {
@override
StateGetTestData createState() => StateGetTestData();
}
class StateGetTestData extends State<GetTestData> with ChangeNotifier {
String my_json = "";
String url = "https://api.ru .... ";
String access_token = "";
sendServerRequest() async {
var response =
await http.post(url, headers: {"Accept": "application/json"});
debugPrint("=======> ${response.statusCode}");
if (response.statusCode == 200) {
setState(() {
access_token = json.decode(response.body)['access_token'];
notifyListeners();
});
} else {
debugPrint("---> $response.statusCode");
}
}
Widget build(BuildContext context) {
return Container(
child: Row(
children: <Widget>[
Flexible(
child: Column(
children: <Widget>[
Text("answer from server: $my_json"),
],
)),
Column(
children: <Widget>[
RaisedButton(
child: Text("Get Data From Server"),
onPressed: sendServerRequest,
)
],
)
],
));
}
}
class SelectRegions extends StatefulWidget {
@override
_SelectRegionsState createState() => _SelectRegionsState();
}
class _SelectRegionsState extends State<SelectRegions> {
List _myActivities;
String _myActivitiesResult;
final formKey = new GlobalKey<FormState>();
@override
void initState() {
super.initState();
_myActivities = [];
_myActivitiesResult = '';
}
_saveForm() {
var form = formKey.currentState;
if (form.validate()) {
form.save();
setState(() {
_myActivitiesResult = _myActivities.toString();
});
}
}
@override
Widget build(BuildContext context) {
final StateGetTestData stateGetTestData = Provider.of<StateGetTestData>(context);
return Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Text("sssssss11ssss ${stateGetTestData.access_token}"),
Container(
padding: EdgeInsets.all(16),
child: MultiSelectFormField(
autovalidate: false,
titleText: 'My workouts',
validator: (value) {
if (value == null || value.length == 0) {
return 'Please select one or more options';
}
},
dataSource: [
{
"display": "Running",
"value": "Running",
},
{
"display": "Climbing",
"value": "Climbing",
},
],
textField: 'display',
valueField: 'value',
okButtonLabel: 'OK',
cancelButtonLabel: 'CANCEL',
// required: true,
hintText: 'Please choose one or more',
value: _myActivities,
onSaved: (value) {
if (value == null) return;
setState(() {
_myActivities = value;
});
},
),
),
Container(
padding: EdgeInsets.all(8),
child: RaisedButton(
child: Text('Save'),
onPressed: _saveForm,
),
),
Container(
padding: EdgeInsets.all(16),
child: Text(_myActivitiesResult),
)
],
);
// );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment