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 Datos
Escribimos 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 DatosService
Escribimos 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();
}