Generalidades

Transformación simple en Android Kotlin. | Autor: Harshita Bambure | Noviembre de 2021

Bambú Harshita

En la mayoría de los casos, usamos MVVM o MVP para la transformación, y ahora aprenderemos cómo usar la transformación simple en Android Kotlin.

Primero, agregaremos permisos de Internet al archivo de manifiesto.

<uses-permission android:name="android.permission.INTERNET"/>

Después de eso, necesitamos agregar algunas dependencias a build.Gradle (: aplicación) documento.

implementation 'com.google.code.gson:gson:2.8.9'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2-native-mt'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0'

Ahora crearemos el modelo a partir del archivo JSON. Para crear el modelo, utilicé el sitio web https://reqres.in/ para la respuesta de la API.

Publicaciones relacionadas

ResponseListUsers.kt

data class ResponseListUsers(
@SerializedName("data")
var data: List<Data>,
@SerializedName("page")
var page: Int,
@SerializedName("per_page")
var perPage: Int,
@SerializedName("support")
var support: Support,
@SerializedName("total")
var total: Int,
@SerializedName(
"total_pages")
var totalPages: Int
)

datos.Mil toneladas

data class Data(
@SerializedName("avatar")
var avatar: String,
@SerializedName("email")
var email: String,
@SerializedName("first_name")
var firstName: String,
@SerializedName("id")
var id: Int,
@SerializedName("last_name")
var lastName: String,
//var suport:Support
)

apoyo.Mil toneladas

data class Support(
@SerializedName("text")
var text: String,
@SerializedName("url")
var url: String
)

Ahora crearemos una clase de transformación.

Actualización de client.kt

object RetrofitClient 

fun getInstance(): Retrofit
var mHttpLoggingInterceptor = HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY)

var mOkHttpClient = OkHttpClient
.Builder()
.addInterceptor(mHttpLoggingInterceptor)
.build()

var retrofit: Retrofit = retrofit2.Retrofit.Builder()
.baseUrl("https://reqres.in")
.addConverterFactory(GsonConverterFactory.create())
.client(mOkHttpClient)
.build()
return retrofit

Ahora crearemos la clase de interfaz API.

Interfaz interface.kt

interface ApiInterface 
@GET("/api/users?page=2")
suspend fun getAllUsers(): Response<ResponseListUsers>

Ahora agregaremos una vista de texto al archivo de diseño.

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ScrollView

android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">

<TextView
android:id="@+id/txtData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
</ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

ahora Agregaremos el siguiente código en el evento principal.

Actividad principal.kt

package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.TextView
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import com.example.myapplication.api.ApiInterface
import com.example.myapplication.api.RetrofitClient
import com.example.myapplication.models.ResponseListUsers
import com.google.gson.Gson
import java.lang.Exception

class MainActivity : AppCompatActivity() {

lateinit var txtData: TextView
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
txtData = findViewById(R.id.txtData)
getUserList()

fun getUserList()
var retrofit = RetrofitClient.getInstance()
var apiInterface = retrofit.create(ApiInterface::class.java)
lifecycleScope.launchWhenCreated
try
val response = apiInterface.getAllUsers()
if (response.isSuccessful())
//your code for handaling success response

else
Toast.makeText(
this@MainActivity,
response.errorBody().toString(),
Toast.LENGTH_LONG
).show()

catch (Ex:Exception)
Log.e("Error",Ex.localizedMessage)

}

Este es el código fuente.

Gracias por leer. Feliz codificación 🙂

LEER  Extraiga Steam Authenticator .maFile de un dispositivo Android no rooteado (cualquier versión) | por BoberMod | Julio de 2021

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba