<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Управление состоянием в Android с помощью LiveData и ViewModel

Управление состоянием в Android с помощью LiveData и ViewModel

Здравствуйте! В сегодняшней статье мы рассмотрим, как использовать LiveData и ViewModel для управления состоянием и данными в приложениях на Android.

Шаг 1: Добавление зависимостей

Для начала, добавим необходимые зависимости в файл build.gradle вашего проекта.

  1. Откройте файл build.gradle (Module: app).
  2. Добавьте следующие зависимости:
dependencies {
    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
}

Шаг 2: Создание ViewModel

Создадим класс ViewModel, который будет содержать данные и логику, связанную с пользовательским интерфейсом.

  1. Создайте новый класс MainViewModel.kt.
  2. Добавьте следующий код:
// MainViewModel.kt (Kotlin)
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class MainViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> get() = _text

    init {
        _text.value = "Hello, World!"
    }

    fun updateText(newText: String) {
        _text.value = newText
    }
}

Шаг 3: Использование ViewModel в Activity

Теперь используем созданный ViewModel в MainActivity.

  1. Откройте файл MainActivity.kt.
  2. Добавим следующий код:
// MainActivity.kt (Kotlin)
import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Observer
import com.example.livedataexample.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private val viewModel: MainViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        viewModel.text.observe(this, Observer {
            binding.textView.text = it
        })

        binding.button.setOnClickListener {
            viewModel.updateText("Hello, LiveData!")
        }
    }
}

Шаг 4: Создание интерфейса

Создадим простой интерфейс с использованием ViewBinding.

  1. Откройте файл activity_main.xml.
  2. Добавьте следующий код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello, World!"
        android:textSize="18sp" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Update Text" />
</LinearLayout>

Шаг 5: Преимущества использования LiveData и ViewModel

Использование LiveData и ViewModel имеет несколько преимуществ:

  • Управление состоянием: LiveData автоматически управляет состоянием данных и обновляет UI при изменении данных.
  • Сохранение состояния: ViewModel сохраняет состояние данных при повороте экрана или других конфигурационных изменениях.
  • Разделение логики: ViewModel позволяет отделить логику обработки данных от UI, что делает код более чистым и поддерживаемым.

Заключение

LiveData и ViewModel являются мощными инструментами для управления состоянием и данными в приложениях на Android. Их использование помогает создавать более устойчивые и легко поддерживаемые приложения. Если вам интересно узнать больше о разработке приложений на Android, рекомендуем видеокурс Разработка приложений на Android с Нуля до Гуру.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.