wildanfuady

Untitled

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