Agregar repositorio
Como vamos a utlizar la librería MPAndoidChart tenemos que agregar el siguiente repositorio:maven { url 'https://jitpack.io' }
El build.gradle(Project: mexicoestadistico) queda de la siguiente forma:
Nota:Hay que syncronizar para que se agrege el repositorio
buildscript { repositories { google() jcenter() maven { url 'https://jitpack.io' } } dependencies { classpath 'com.android.tools.build:gradle:3.3.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } } } task clean(type: Delete) { delete rootProject.buildDir }
Dependencias
Necesitamos agregar las siguientes dependencias para consumir el webservice y para mostar el gráfico:implementation 'com.squareup.retrofit2:retrofit-converters:2.5.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
el build.grade(Module: app) queda de la siguiente forma: No olvidar sincronizar
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "mx.com.tutosoftware.mexicoestadistico" minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.squareup.retrofit2:retrofit-converters:2.5.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' }
AndroidManifest.xml
Para poder consultar la api tenemos que agregar los permisos para internet<uses-permission android:name="android.permission.INTERNET" > </uses-permission>
Nos vamos al directorio app->manifest->AndroidManifest.xml quedando así:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mx.com.tutosoftware.mexicoestadistico"> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Crear el modelo de datos
Nos vamos a app->java->mx.com.tutosoftware.mexicoestadistico creamos el paquete model.Sobre este paquete creamos la clase DatosEscribimos lo siguiente:
package mx.com.tutosoftware.mexicoestadistico.model; public class Datos { private String cve_agee; private String nom_agee; private String nom_abrev; private String pob; private String pob_fem; private String pob_mas; private String viv; public String getCve_agee() { return cve_agee; } public void setCve_agee(String cve_agee) { this.cve_agee = cve_agee; } public String getNom_agee() { return nom_agee; } public void setNom_agee(String nom_agee) { this.nom_agee = nom_agee; } public String getNom_abrev() { return nom_abrev; } public void setNom_abrev(String nom_abrev) { this.nom_abrev = nom_abrev; } public String getPob() { return pob; } public void setPob(String pob) { this.pob = pob; } public String getPob_fem() { return pob_fem; } public void setPob_fem(String pob_fem) { this.pob_fem = pob_fem; } public String getPob_mas() { return pob_mas; } public void setPob_mas(String pob_mas) { this.pob_mas = pob_mas; } public String getViv() { return viv; } public void setViv(String viv) { this.viv = viv; } }
Ahora creamos la clase Estados en el mismo paquete:
package mx.com.tutosoftware.mexicoestadistico.model; import java.util.ArrayList; import java.util.List; public class Estados { private List<Datos> datos = new ArrayList<>(); public List<Datos> getDatos() { return datos; } public void setDatos(List<Datos> datos) { this.datos = datos; } }
Interface de servicio
Aqui vamos crear una interface con el método get para traer nuestros datos, en app->java->mx.com.tutosoftware.mexicoestadistico creamos el paquete service cremos la interface DatosServiceEscribimos lo siguiente:
package mx.com.tutosoftware.mexicoestadistico.service; import mx.com.tutosoftware.mexicoestadistico.model.Estados; import retrofit2.Call; import retrofit2.http.GET; public interface DatosService { String API_ROUTE = "mgee/"; @GET(API_ROUTE) Call<Estados> getData(); }