Advertisement
rizalrox

Untitled

Jan 3rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.04 KB | None | 0 0
  1. class ScreenTagihan extends StatefulWidget {
  2.   @override
  3.   _ScreenTagihanState createState() => _ScreenTagihanState();
  4. }
  5.  
  6. class _ScreenTagihanState extends State<ScreenTagihan> {
  7.   final scaffoldKey = GlobalKey<ScaffoldState>();
  8.  
  9.   List tagihanPelanggan;
  10.   http.Client client;
  11.  
  12.   ///getData from Respul API
  13.   Future getDataByInstalasi() async {
  14.     final String url = "$URL_INFOAIR";
  15.     final data = {
  16.       "instalasi": "020723",
  17.     };
  18.     final response = await http.post(url, body: data);
  19.     if (response.statusCode == 200) {
  20.       var regex = RegExp(r'<[\s\S]*>', multiLine: true);
  21.       var result = response.body.replaceAll(regex, '');
  22.       setState(() {
  23.         tagihanPelanggan = json.decode(result);
  24.       });
  25.       debugPrint(tagihanPelanggan.toString());
  26.     } else {
  27.       throw Exception('');
  28.     }
  29.   }
  30.  
  31.   @override
  32.   void initState() {
  33.     super.initState();
  34.     getDataByInstalasi();
  35.   }
  36.  
  37.   @override
  38.   Widget build(BuildContext context) {
  39.     final appBar = AppBar(
  40.       title: Text('Data Tagihan Pelanggan'),
  41.       elevation: 5.0,
  42.     );
  43.  
  44.  
  45.  
  46.  
  47.     final items = tagihanPelanggan.map((it) {
  48.         return ListTile(
  49.           leading: CircleAvatar(
  50.             backgroundColor: Colors.blue,
  51.             child: Text(
  52.                 '${it['nama'].toString().split(' ')[0].substring(0, 1)}${it['nama'].toString().split(' ')[1].substring(0, 1)}'),
  53.           ),
  54.           title: Text('${it['nama']}'),
  55.           subtitle: Text('${it['alamat']}'),
  56.         );
  57.     }).toList();
  58.  
  59.     final dividerItem = ListTile.divideTiles(
  60.         tiles: items, context: context, color: Colors.blue);
  61.  
  62.     final body = ListView.builder(
  63.         itemCount: items.length,
  64.         itemBuilder: (BuildContext context, int index) {
  65.           return dividerItem.elementAt(index);
  66.         });
  67.  
  68.     return Scaffold(
  69.       key: scaffoldKey,
  70.       appBar: appBar,
  71.       body: tagihanPelanggan.length > 0
  72.           ? body
  73.           : Center(
  74.               child: Text('Data masih kosong'),
  75.             ),
  76.     );
  77.   }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement