Advertisement
wildanfuady

Untitled

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