Advertisement
wildanfuady

Untitled

Nov 13th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.89 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:grouped_buttons/grouped_buttons.dart';
  3. import 'package:http/http.dart' as http;
  4. import 'package:sekolahku/project/ListSiswa.dart';
  5.  
  6. class EditSiswa extends StatefulWidget {
  7. final List list;
  8. final int index;
  9. EditSiswa({this.list, this.index});
  10. @override
  11. _EditSiswaState createState() => _EditSiswaState();
  12. }
  13.  
  14. class _EditSiswaState extends State<EditSiswa> {
  15.  
  16. TextEditingController controllerNama;
  17. TextEditingController controllerUsia;
  18. TextEditingController controllerKelas;
  19. TextEditingController controllerTelp;
  20. TextEditingController controllerAlamat;
  21.  
  22. String _jenjang;
  23. List<String> _hobi;
  24.  
  25. List<String> hobi = ["Membaca", "Menulis", "Menggambar"];
  26.  
  27. final _formKey = GlobalKey<FormState>();
  28.  
  29. void editData() {
  30. var url="http://10.0.2.2/flutter-sekolahku-server/siswa/editsiswa.php";
  31. http.post(url, body: {
  32. "id" : widget.list[widget.index]['id'],
  33. "nama" : controllerNama.text,
  34. "usia" : controllerUsia.text,
  35. "kelas" : controllerKelas.text,
  36. "telp" : controllerTelp.text,
  37. "alamat" : controllerAlamat.text,
  38. "jenjang" : _jenjang,
  39. "hobi" : "${_hobi.toString()}",
  40. });
  41. }
  42. @override
  43. void initState() {
  44. controllerNama = new TextEditingController(text: widget.list[widget.index]['nama']);
  45. controllerUsia = new TextEditingController(text: widget.list[widget.index]['usia']);
  46. controllerKelas = new TextEditingController(text: widget.list[widget.index]['kelas']);
  47. controllerTelp = new TextEditingController(text: widget.list[widget.index]['telp']);
  48. controllerAlamat = new TextEditingController(text: widget.list[widget.index]['alamat']);
  49. var controllerHobi = widget.list[widget.index]['hobi'];
  50. // Menggambar,Menulis
  51. var valueHobi = controllerHobi.split(",");
  52. // valueHobi[0] = Menggambar
  53. // valueHobi[1] = Menulis
  54. _hobi = valueHobi;
  55. // _hobi = ["Menulis", "Menggambar"]
  56. _jenjang = widget.list[widget.index]['jenjang'];
  57. super.initState();
  58. }
  59. @override
  60. Widget build(BuildContext context) {
  61.  
  62. final Size screenSize = MediaQuery.of(context).size;
  63.  
  64. return Scaffold(
  65. appBar: AppBar(
  66. title: new Text("Edit Siswa"),
  67. leading: IconButton(
  68. icon: Icon(Icons.arrow_back),
  69. onPressed: () {
  70. Navigator.pop(context);
  71. },
  72. ),
  73. actions: <Widget>[
  74. IconButton(
  75. icon: Icon(
  76. Icons.update,
  77. color: Colors.white,
  78. ),
  79. tooltip: "Save",
  80. onPressed: () {
  81. editData();
  82. Navigator.of(context).pushReplacement(
  83. new MaterialPageRoute(
  84. builder: (_) {
  85. return new ListSiswa();
  86. }
  87. ),
  88. );
  89. },
  90. ),
  91. ],
  92. ),
  93. body: Form(
  94. key: _formKey,
  95. child: Padding(
  96. padding: const EdgeInsets.all(10.0),
  97. child: ListView(
  98. children: <Widget>[
  99. new TextFormField(
  100. controller: controllerNama,
  101. keyboardType: TextInputType.text,
  102. decoration: new InputDecoration(
  103. hintText: "Nama Siswa",
  104. labelText: "Nama *",
  105. icon: Icon(Icons.person),
  106. ),
  107. validator: (val){
  108. if(val.isEmpty){
  109. return "Nama Siswa wajib diisi";
  110. }
  111. return null;
  112. },
  113. ),
  114. new TextFormField(
  115. controller: controllerUsia,
  116. keyboardType: TextInputType.number,
  117. decoration: new InputDecoration(
  118. icon: Icon(Icons.assessment),
  119. labelText: "Usia *",
  120. ),
  121. validator: (val){
  122. if(val.isEmpty){
  123. return "Usia Siswa wajib diisi";
  124. }
  125. return null;
  126. },
  127. ),
  128. TextFormField(
  129. controller: controllerKelas,
  130. keyboardType: TextInputType.number,
  131. decoration: InputDecoration(
  132. hintText: "Kelas Siswa",
  133. icon: Icon(Icons.school),
  134. labelText: "Kelas *",
  135. ),
  136. validator: (val){
  137. if(val.isEmpty){
  138. return "Kelas Siswa wajib diisi";
  139. }
  140. return null;
  141. },
  142. ),
  143. TextFormField(
  144. controller: controllerTelp,
  145. keyboardType: TextInputType.number,
  146. decoration: InputDecoration(
  147. hintText: "Telp Siswa",
  148. icon: Icon(Icons.phone),
  149. labelText: "Telp *",
  150. ),
  151. validator: (val){
  152. if(val.isEmpty){
  153. return "Telp Siswa wajib diisi";
  154. }
  155. return null;
  156. },
  157. ),
  158. TextFormField(
  159. controller: controllerAlamat,
  160. keyboardType: TextInputType.multiline,
  161. maxLines: 2,
  162. decoration: InputDecoration(
  163. hintText: "Alamat Siswa",
  164. icon: Icon(Icons.room),
  165. labelText: "Alamat *",
  166. ),
  167. validator: (val){
  168. if(val.isEmpty){
  169. return "Alamat Siswa wajib diisi";
  170. }
  171. return null;
  172. },
  173. ),
  174. Padding(
  175. padding: EdgeInsets.only(top: 8.0),
  176. ),
  177. Text(
  178. "Jenjang:",
  179. style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
  180. ),
  181. DropdownButton<String>(
  182. isExpanded: true,
  183. value: _jenjang,
  184. onChanged: (String jenjang) {
  185. setState(() {
  186. _jenjang = jenjang;
  187. });
  188. },
  189. items: <String>[
  190. 'TK',
  191. 'SD',
  192. 'SMP'
  193. ].map<DropdownMenuItem<String>>((String value) {
  194. return DropdownMenuItem<String>(
  195. value: value,
  196. child: Text(value),
  197. );
  198. }).toList(),
  199. ),
  200. Padding(
  201. padding: EdgeInsets.only(top: 8.0),
  202. ),
  203. Text(
  204. "Hobi:",
  205. style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
  206. ),
  207. CheckboxGroup(
  208. labels: <String>[
  209. "Membaca",
  210. "Menulis",
  211. "Menggambar",
  212. ],
  213. checked: _hobi,
  214. onChange: (bool isChecked, String label, int index) => print("isChecked: $isChecked label: $label index: $index"),
  215. onSelected: (List<String> checked) => setState((){
  216. _hobi = checked;
  217. print("checked: ${checked.toString()}");
  218. print(_hobi);
  219. }),
  220. ),
  221. Container(
  222. width: screenSize.width,
  223. child: new RaisedButton(
  224. color: Colors.lightBlue,
  225. onPressed: () {
  226. if (_formKey.currentState.validate()) {
  227. editData();
  228. Navigator.of(context).pushReplacement(new MaterialPageRoute(builder: (_) {
  229. return new ListSiswa();
  230. }));
  231. }
  232. },
  233.  
  234. child: new Text(
  235. "Update",
  236. style: TextStyle(color: Colors.white),
  237. ),
  238. ),
  239. ),
  240. ],
  241. ),
  242. ),
  243. ),
  244. );
  245. }
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement