Тёмный
No video :(

Урок 7. Сохранение состояния Activity - onSaveInstanceState() или ViewModel? LiveData 

Start Android
Подписаться 129 тыс.
Просмотров 36 тыс.
50% 1

Подпишись на Продвинутые курсы по созданию мобильных приложений и игр для андроид на языках Java и Kotlin: www.fandroid.i...
Продолжаем курс по разработке андроид-приложений на языке Kotlin. В этом уроке мы разберемся, зачем сохранять состояние активити при изменениях конфигурации и какие инструменты для этого лучше использовать - onSaveInstanceState() или ViewModel. Также немного поговорим о LiveData и Kotlin Android Extensions. Исходный код в текстовой версии урока: www.fandroid.i...
------------------------------------------------------------------
Весь плейлист: goo.gl/UmiMbN
------------------------------------------------------------------
Основы Kotlin: www.fandroid.i...
------------------------------------------------------------------
Продвинутые курсы по созданию реальных приложений и игр для android: www.fandroid.info/
------------------------------------------------------------------
Больше уроков:
Уроки по основам работы с Android Studio на Java: goo.gl/02GtH5
Как создать android приложение на Java: goo.gl/oJgrOc
Инструменты android разработчика: goo.gl/VoAnZx
Дизайн android приложений: goo.gl/cfwMEV
Уроки создания игр для android: goo.gl/NVS39q
Основы программирования на JAVA: goo.gl/TZRHpG
------------------------------------------------------------------
Хороший ресурс для обучения языку java: goo.gl/7Hc9Gz
------------------------------------------------------------------
Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: goo.gl/o4d9mk
------------------------------------------------------------------
Скачать видеоуроки: goo.gl/2Wpvp4
------------------------------------------------------------------
Поддержите наш проект: goo.gl/zcW4nq
#Kotlin
#LiveData
#ViewModel
#Startandroid

Опубликовано:

 

14 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 63   
@alexbulavin543
@alexbulavin543 5 лет назад
Так никуда не годится! В одном уроке две темы. Если с первой частью почти всё понятно и код работает (кроме восстановления данных после поворота экрана телефона, списываю это на нестабильность Android Q на текущий момент 4.05.2019), то во второй части урока начиная с 5:12 используется неизвестно откуда взявшийся код. И что нам с этим делать? Где разъяснения как его создавать? Мы ведь для того и пришли на это занятие, чтобы найти объяснения. А тут предлагается наобум создавать все нужные файлы, восстанавливая текст с видео не понимая, куда делся предыдущий код из первой части занятия и как они должны быть связаны? Кроме того, когда код создан он просто не работает. И всего лишь из-за того, что нужно подгрузить некоторые компоненты SDK (или ещё что-то). Нонам откуда это должно быть известно??? Считаю, что нужно как минимум откорректировать видео и чётко объяснить с момента 5:12, что ребята, сейчас мы соддадим совершенно новый проект с ноля. Делайте так и так, должно получиться вот это... и так далее. Хардкод списка пользователей предлагаю заменить на более простые и понятные (и сразу и для последующего переиспользования) UserName1...UserNameN; UserDescription1...UserDescriptionN и так далее. Пользователи тем самым будут отличаться друг от друга, но подобные списки нам создать гораздо проще - скопировал и вставил, изменил индекс и всё готово. Спасибо!
@start_android
@start_android 5 лет назад
Спасибо, учтем пожелания
@appcantabria3324
@appcantabria3324 5 лет назад
@@start_android ну ну.........
@Guck1986
@Guck1986 4 года назад
Да не, норм, если свичь с другого языка, чисто для ускорения ознакомления. А если вы с нуля, вам явно не за андройд надо браться.
@AlexRobz161
@AlexRobz161 4 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-MAlSjtxy5ak.html
@bogdannikitchuk3878
@bogdannikitchuk3878 4 года назад
@@AlexRobz161 в точку)
@user-kt3lf7yr7o
@user-kt3lf7yr7o 3 года назад
Предыдущие уроки всё отлично, лучшие уроки в сети... а здесь со второй половины "галопом по европам". Про холдеры, биндинг и адаптер не понятно... слишком быстро, половина строк не объясняется... и т.д. Просто чтение комментариев по кускам кода получается... гораздо лучше когда автор пишет код и объясняет, а тут во второй половине по уже написанному просто комментарии какой блок что делает.
@Dark3470
@Dark3470 Год назад
это recycler view, в интернете есть годные уроки по нему но у всех них встает вопрос о сохранении состояния, потому как нигде не объясняется как сохранить состояние в recycler view, официальная документация иногда как белый шум в таких случаях, вроде знаешь что это, но не понимаешь как применить собственно это видео не очень помогло в сохранении состояния
@YoungDeveloper
@YoungDeveloper 5 лет назад
Если можно уроки выпускать часто. Жду не дождусь следующего урока
@wormeater1954
@wormeater1954 Год назад
Даже спустя 3 года актуально, благодарю 💪
@alexstyle8654
@alexstyle8654 5 лет назад
Бро,очень ждем следующего урока. Можно хоть по 3 минуты, но почаще.
@kulbabus
@kulbabus 3 года назад
Если честно мало что извлек из видео. Нужно проще рассказывать и говорить о главном.
@korsikov2552
@korsikov2552 4 года назад
Пример проще нельзя было использовать? Вроде рассматривали ViewModel, а накрутили так...
@awenn2015
@awenn2015 Год назад
Не получается создать в mainActivity переменную от UserViewModel, показывает ошибку Property delegate must have a 'getValue(MainActivity, KProperty*>)' method. None of the following functions are suitable. Решение: Для тех кто в в 2022г и пишет на котлине вот так создаем переменную ViewModel => private val customizerViewModel by lazy {ViewModelProvider(this)[CustomizerViewModel::class.java]} (так же вместо android.arch.lifecycle нужно имплементировать 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1')
@user-ld8tq2ie4p
@user-ld8tq2ie4p 3 года назад
Спасибо, большое за курс! Информацию о Kotlin Android Extensions стоит добавить в урок номер 4 после инструкции про добавление автоимпорта "на лету"
@user-ul2jc8ej2p
@user-ul2jc8ej2p Год назад
Я когда давно столкнулся с тем что activity пересоздает данные - посчитал бредом и меня отвернуло навиг. Ни в одной системе до этого view так не пересоздавался. Во всяком случае данные по 10 раз получать и где то хранить - больше на костыль похоже
@b0ss1987
@b0ss1987 5 лет назад
Отлично! Канал оживился )
@Flandenar
@Flandenar 3 года назад
По ViewModel наверное стоило бы сделать отдельный урок. К тому же, установить зависимости как в видео сейчас не получается, при установке более современной версии список получается другим, не понятно что и как.
@croptv7093
@croptv7093 5 лет назад
Годно, без вопросов
@IlyaPopov2003
@IlyaPopov2003 2 года назад
Есть вопрос ,ответьте пожалуста .Я создал приложение погода ,и хочу чтобы данные все сохранялись при повороте экрана .Не какойто элемент а все активити .Можете написать код для сохранения всего активити
@user-xv4px3se6l
@user-xv4px3se6l 4 года назад
implementation 'com.android.support:recyclerview-v7:28.0.0' не подгружается следовательно import android.support.v7.widget.LinearLayoutManager не работает и userList.layoutManager = LinearLayoutManager(this) userList.adapter = adapter не будет работать не пойму как это побороть работаю на C# и там таких проблем нет, студия сама подскажет как исправить или что подгрузить
@user-xv4px3se6l
@user-xv4px3se6l 4 года назад
На страничке с уроком, в комментариях есть решение www.fandroid.info/urok-7-androiddev-na-kotlin-sohranenie-i-peredacha-sostoyaniya-aktiviti-pri-povorote-ustrojstva-onsaveinstancestate-ili-viewmodel-livedata-kotlin-android-extensions/
@iamlaner2029
@iamlaner2029 4 года назад
Нет папки «User» Откуда она появилась?
@alexeyryaguzov3951
@alexeyryaguzov3951 5 лет назад
здравствуйте виталий. в версии. Android Studio 3.4. появилась возможность использовать sample Data можете ли вы сделать по этой теме урок
@InvincibleXXX
@InvincibleXXX 4 года назад
еще момент - у меня сохраняются значения при повороте экрана, может это связано с новой версией android studio, а урок просто уже утарел?
@amiakari7700
@amiakari7700 Год назад
странно - у меня при повороте экрана и при переходе в многооконный режим текст в TextView не сбросился, а при смене языка - да
@awenn2015
@awenn2015 Год назад
сейчас restore по другому наверно работает, его лучше не использовать для таких целей так как он срабатывает только при повороте экрана
@awenn2015
@awenn2015 Год назад
То есть по идее во vm можно хранить Bluetooth сокет? Что бы он не уничтожался при повороте экрана и тд (точнее он не уничтожается просто я его на deatch уничтожаю
@Dark3470
@Dark3470 Год назад
это recycler view, в интернете есть годные уроки по нему но у всех них встает вопрос о сохранении состояния, потому как нигде не объясняется как сохранить состояние в recycler view, официальная документация иногда как белый шум в таких случаях, вроде знаешь что это, но не понимаешь как применить собственно это видео не очень помогло в решении этой проблемы в recycle view
@soulgenn
@soulgenn 5 лет назад
Создайте пожалуйста урок про хоткеи в Android Studio и полезные(скрытые) трюки пользования данной IDE
@yuriyabramov8360
@yuriyabramov8360 4 года назад
Местами ощущение что на разном пишем, местами код совсем не работает, местами все другое. У вас хоть какая версия? У меня 3.5.1. Или это не уроки совсем, а замануха на курсы такая!? Так хуже себе делаете
@InvincibleXXX
@InvincibleXXX 4 года назад
я один не понимаю почему здесь ненужно применять findViewById к элементам? Как система или как правильно сказать, наверное SDK понимает какой элемент куда подвязывается?
@Irod_Akayanny
@Irod_Akayanny 4 года назад
Просто в коде по id обращаешься к View.
@InvincibleXXX
@InvincibleXXX 4 года назад
@@Irod_Akayanny для чего там нам нужен был findVeiwById или зачем применять dataBinding?
@Irod_Akayanny
@Irod_Akayanny 4 года назад
@@InvincibleXXX Изначально для работы с View в коде использовался (и сейчас его по прежнему можно использовать) findVeiwById. Потом подъехал Kotlin Android Extensions и с помощью kotlinx.android.synthetic ты можешь прям сразу в коде писать id. А dataBinding связывает переменную и то место где она должна отображаться (View). Тебе больше не нужно заботится о том, чтобы пулять каждый раз измененное значение во вьюху.
@InvincibleXXX
@InvincibleXXX 4 года назад
@@Irod_Akayanny я вас понял, спасибо за разъяснение!
@dimka00706
@dimka00706 3 года назад
@@Irod_Akayanny этот плагин (kotlin android extensions) уже стал deprecated
@Haota2000
@Haota2000 3 года назад
Код не работает, в интеренете пишут что это java а не котлин. Почему он у вас работает?
@sfiirwuejnn
@sfiirwuejnn 5 лет назад
ru-vid.com/show-UCxGXkPks1Ykbx2Plt4DgZlA - Еще один хороший канал для андроид разработчиков
@freeman5505
@freeman5505 5 лет назад
Здавствуйте! Почему не которые приложения работает с помощью интернета, например : вконтакт, инсаграмм... и тогдали , а не которые работает без интернета ? Или они создаются на разных языках?
@toki317
@toki317 2 года назад
без интернета работают те приложения, которые работают на языках программирования не с интернета а с флешки а те что с интернета тем и интернет нуж0н
@awenn2015
@awenn2015 Год назад
причем тут язык вообще, какие permission запросишь в манифесте то и будет работать
@awenn2015
@awenn2015 Год назад
для тех пришел в 2к22 имплементируйте androidx.recyclerview:recyclerview:1.2.1 вместо com.android.support:recycylerview-v7:28.0.0
@alext711
@alext711 4 года назад
ЛАЙВ ДЭЙТА! А НЕ ЛИВ ДАТА!
@b1_world
@b1_world 5 лет назад
где новое видєо?
@meoook
@meoook 4 года назад
Спасибо, все понятно и подробно рассказал, а где надо, коменты в коде.
@cybersystem5137
@cybersystem5137 4 года назад
Bundle? не работает тоже сейчас, без ? - спокойно.
@KabukiWarrior369
@KabukiWarrior369 3 года назад
Очень крутой урок, все понятно, большое спасибо!
@Tim_Obozny
@Tim_Obozny Год назад
ценю чужой труд, поэтому досмотрел до конца с удовольствием, но, к сожалению, сейчас этот код не работает :( Почитаю документашку
@ki11qwerty47
@ki11qwerty47 5 лет назад
не смотрел, но ставлю лайк так как уважаю вашу работу, параллельно учусь котлину на андройд просто забежал уже немного по дальше, весело было с бродкастами, с созданием ананимного класса в котлин, часа 4 убил)
@user-kx5ph5oj2k
@user-kx5ph5oj2k 5 лет назад
Что делать если антивирус (AVG) удалил файл adb.exe (в карантин)?
@user-nz8yz2gp1b
@user-nz8yz2gp1b 4 года назад
Заменить антивирус)
@jojomajo
@jojomajo 4 года назад
антивирус сносит безобидные файлы - повод снести сам антивирус
@tpov_oleg
@tpov_oleg 2 года назад
Лёгкие вещи объясняются сложными терминами, ничего не понятно
@DTXru
@DTXru 5 лет назад
Много автор канала заработал?
@KlinovAS
@KlinovAS 4 года назад
Вообще неважно. Заслуживает более чем. Когда мотиваторы говорят "главное действовать", то одни говорят "это точно", а другие действуют. Автор просто молодец!
@aleksandrboyko1388
@aleksandrboyko1388 Год назад
Что за магия? button.setOnClickListener . А где инициализация button?
Далее
Урок 8. Android Data Binding - основы
10:01
Шаблон MVVM по-простому. LiveData.
33:00
Kotlin: это что и зачем нужен
5:04
Просмотров 28 тыс.