Generalidades

LiveData en el desarrollo de Android.Como desarrollador de Android, ¿alguna vez… | por Mingkang Zhou | febrero de 2022

como un desarrollador de Androidte has encontrado con algunos dificultad Cuándo pasar datos desde Clase de procesamiento de lógica empresarial (ViewModel, Presenter) llegar Actividad o Fragmento? Si todavía está luchando con este problema, estoy aquí para traerle un nuevo término llamado «Datos en tiempo real».

Ahora, hagámoslo un poco más simple para que puedas entenderlo mejor.

Como se mencionó anteriormente, Desarrolladores de Android «anticuados» tiende a escribe todo en la clase Actividad o Fragmento Esto es Difícil de mantener y actualizarAsí empezaron Separación de parte lógica y parte de vista atravesar Aplicar Patrones de arquitectura de software como MVVM (Modelo-Vista-Modelo de vista) o MVP (Modelo-Vista-Presentador) La llegada de LiveData hace que todo sea más fácil para los desarrolladores.

Entonces, según Google, Datos en tiempo real Perímetro llegar Ciclo de vida de actividad o fragmento así será Resuelve eficazmente el problema de pérdida de memoria atravesar no notificar inactivo.

LiveData en el desarrollo de AndroidComo desarrollador de Android ¿alguna
Enlace de imagen aquí

no solo, Datos en tiempo real también beneficiar a otros me gusta:

  • Los datos más recientes en la interfaz de usuario.
  • No se requiere manejo manual del ciclo de vida.
  • Conservar los datos cuando se produzcan cambios de configuración.
  • Comparta datos al observar el mismo LiveData.

En este blog, te presentaré a «Datos variables en tiempo real» Esto es Esta Los datos en vivo más simples observar los cambios y utilizar arquitectura MVVM, ver encuadernación para este ejemplo.

  • paso 1: añadir ViewModel y LiveData dependencias existe build.gradle (módulo)
def lifecycle_version = "2.5.0-alpha02"// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")

// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")

  • Paso 2: Ahora, voy a crear un diseño sencillo y un texto de edición Ingrese su nombre de usuario, un botón activar el evento de actualización de nombre de usuario y una vista de texto Recibir cambios de LiveData.

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:padding="20dp">

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_name"/>

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update name"
android:id="@+id/btn_update"/>

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:textSize="20sp"
android:layout_gravity="center_horizontal"
android:id="@+id/tv_name"/>

1645773188 879 LiveData en el desarrollo de AndroidComo desarrollador de Android ¿alguna
Así es como se ve el diseño
  • Paso 3: crear Tu ver clase de modelo y Definir una instancia MutableLiveDataEn este ejemplo, usaré una cadena para almacenar el nombre de usuario.llegar observar cambiosVoy Definir un objeto LiveData llegar Recibir cambios de MutableLiveData.
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class YourViewModel: ViewModel() {
private val _name = MutableLiveData()
val name: LiveData get() = _name
}

  • Paso 4: Crear getUsername() Actuando tu modelo de vista Ir a clases Publicar nuevo nombre de usuario en MutableLiveData.
fun getUsername(name: String) {
//Notify MutableLiveData that there is new value coming.
_data.postValue(name)
}
  • Paso 5: en tu evento, vincula tu diseño y Obtenga la instancia de YourViewModel. finalmente establecer observador para LiveData Actualice el texto de TextView cuando haya un nuevo valor.
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
import com.chow.livedatablog.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var yourViewModel: YourViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityMainBinding.inflate(layoutInflater)

setContentView(binding.root)

//get YourViewModel from ViewModelProvider
yourViewModel = ViewModelProvider(this)[YourViewModel::class.java]

binding.apply {
//Set up LiveData observer
yourViewModel.data.observe(this@MainActivity) {
//Update your UI here with new value
tvName.text = it
}
}
}
}

  • finalmente: establecer en el oyente de clics para botón Enviar el nuevo nombre de usuario a YourViewModel.
btnUpdate.setOnClickListener { 
yourViewModel.getUsername(etName.text.toString())
}

¡Veamos los resultados!

LiveData en el desarrollo de AndroidComo desarrollador de Android ¿alguna

Referirse a:

LEER  Honor X7: la experiencia de Huawei en Android de gama media (Unboxing en español) - Charlypi

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