Consultar Cep para preencher automaticamente logradouro e bairro no formulario #132
Unanswered
rsaltavista
asked this question in
Perguntas e Respostas
Replies: 1 comment
-
Então ,basicamente oque tu vai ter que fazer é {
"cep": "01001-000",
"logradouro": "Praça da Sé",
"complemento": "lado ímpar",
"bairro": "Sé",
"localidade": "São Paulo",
"uf": "SP",
"ibge": "3550308",
"gia": "1004",
"ddd": "11",
"siafi": "7107"
}
5- Cria um model, cada 'chave' desse json vira uma variável desse model Mão sei se ficou bem claro, mas tem alguns conteúdos bons na internet Esse vídeo aqui explica bem https://www.youtube.com/watch?v=y_HpEEYatro Isso aqui é um código que também pode funcionar import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class CepForm extends StatefulWidget {
@override
_CepFormState createState() => _CepFormState();
}
class _CepFormState extends State<CepForm> {
final _formKey = GlobalKey<FormState>();
final _cepController = TextEditingController();
String _logradouro = "";
String _bairro = "";
String _cidade = "";
String _uf = "";
void _buscarCep() async {
final cep = _cepController.text.replaceAll("-", "");
final response = await http.get(Uri.parse("https://viacep.com.br/ws/$cep/json/"));
final dados = json.decode(response.body);
setState(() {
_logradouro = dados["logradouro"];
_bairro = dados["bairro"];
_cidade = dados["localidade"];
_uf = dados["uf"];
});
}
@override
void dispose() {
_cepController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Consulta de CEP"),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextFormField(
controller: _cepController,
keyboardType: TextInputType.number,
decoration: InputDecoration(
labelText: "CEP",
hintText: "Informe o CEP",
border: OutlineInputBorder(),
),
validator: (value) {
if (value == null || value.isEmpty) {
return "Por favor, informe o CEP";
}
if (value.length != 8) {
return "Por favor, informe um CEP válido";
}
return null;
},
),
SizedBox(height: 16),
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
_buscarCep();
}
},
child: Text("Consultar"),
),
SizedBox(height: 16),
Text("Logradouro: $_logradouro"),
Text("Bairro: $_bairro"),
Text("Cidade: $_cidade"),
Text("UF: $_uf"),
],
),
),
),
);
}
}``` |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Tenho um formulário enão consigo fazer a pessoa preencher o cep e com isso, automaticamente o endereco e o bairro serem preenchidos. Todos os conteúdos sobre isso na internet estão desatualizados, alguem pode me ajudar?
Beta Was this translation helpful? Give feedback.
All reactions