Articles of android architecture components

Как наблюдать данные PagedList?

Я использую Paging Library и компоненты Android Architecture. Я просто хочу наблюдать pagedlist livedata и обновлять свой RecyclerView при изменении. Я наблюдаю объекты isLoadingLiveData, isEmptyLiveData и errorLiveData, которые являются объектами MediatorLiveData, созданными в моей модели ViewModel и наблюдаемые в моем фрагменте. А также наблюдение resultLiveData, которое возвращает выбранный список Gist с удаленного. В моей модели […]

Пользовательский полу-обобщенный Factory для ViewModels

Я пытаюсь создать обобщенный ViewModelProvider.Factory для создания экземпляров ViewModels class BundledAppFactory(private var bundle: AppParameterBundle) : ViewModelProvider.NewInstanceFactory() { override fun <T : ViewModel> create(modelClass: Class<T>): T { Log.d("Factory", "Creating ${modelClass.canonicalName}") Log.d("Factory", "${modelClass.canonicalName} has ${modelClass.constructors.size} constructors and ${modelClass.declaredConstructors.size} declaredConstructors") modelClass.constructors.forEach { Log.d("Factory", "Constructor: $it") } return when { AppViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppParameterBundle::class.java).newInstance(bundle) AppTeamUserViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppTeamUserParameterBundle::class.java).newInstance(bundle) AppTeamUserHuntIdViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppTeamUserHuntIdParameterBundle::class.java).newInstance(bundle) […]

Рекурсивный вызов по ленивому значению с использованием LiveData и ObserveForever

У меня есть следующая структура классов: Activity> ViewModel> DataManager> ApiManager Я пытаюсь использовать LiveData для совместного использования объектов между слоями. DataManager и ApiManager являются объектами kotlin, поэтому они не имеют ссылки на действия. Чтобы реализовать «обратный вызов», я использую функции observeforever в DataManager и ApiManager следующим образом: fun doStuff(inParam:String, inParam2:String)LiveData<Pair<String,Boolean>>{ var reponse:MutableLiveData<Pair<String,Boolean>> = MutableData() val […]

LiveData.addSource onChanged событие, не вызывающее Android

Я работаю с Android Archi + Retrofit + RxAndroid в Котлине. Мне нужно обновить свой объект Data, когда вы получите ответ от сервера. Но liveata.addSource's onChanged не звонит. Я получаю помощь от кода Git: – https://github.com/shahbazahmed1269/AndroidGithubIssues Вот мой код в Котлине: – class LoginRepository : BaseRepository() { fun callLoginApi(data: HashMap<String, String>): LiveData<LoginResponse> { val liveData: […]

LiveData Observver поймает только первое значение

Я получаю список проблем из базы данных Firebase и возвращаю LiveData . fun getAllIssues(): MutableLiveData<IssueEntity> { val issues: MutableLiveData<IssueEntity> = MutableLiveData() val issuesReference = FirebaseDatabase.getInstance().reference.child("issues") issuesReference.addValueEventListener(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { } override fun onDataChange(snapshot: DataSnapshot?) { if (snapshot == null) { return } snapshot.children.forEach({ val issueMessage = it.child("message").value.toString() val issueTitle = […]

Android LiveData Observer не активен после первого обновления

Я пытаюсь выполнить базовую реализацию Live Data Data Component с Kotlin следующим образом: class MarketFragment : LifecycleFragment(){ …… override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel=ViewModelProviders.of(this).get(MarketViewModel::class.java) viewModel.book?.observe(this, Observer { book-> //updateUI }) …. Мой класс ViewModel создается следующим образом: class MarketViewModel : ViewModel() { var book: MutableLiveData<Book>? =MutableLiveData() var repository: Repository?= Repository() init { update("parameter") } […]

Новая архитектура с кинжалом и Котлином

У меня возникла проблема с компонентами новой архитектуры в Котлине, когда я создаю компонент ViewModel в рекомендуемом виде (в методе onCreate ()), результат получается следующим образом: после изменения ориентации активности, я получил тот же экземпляр ViewModel, что и раньше Вот как я создаю этот override fun onCreate(savedInstanceState: Bundle?) { AndroidInjection.inject(this) super.onCreate(savedInstanceState) setContentView(R.layout.activity_list) val arrayMap = […]

Как связать преобразования в Android при использовании живых данных?

Учитывая следующую настройку: У меня есть 2 репозитория: репозиторий A и репозиторий B оба из них возвращают данные в реальном времени. У меня есть ViewModel, который использует оба этих репозитория. Я хочу извлечь что-то из репозитория A, и в зависимости от результата я хочу взять что-то из репозитория B, а затем преобразовать результат, прежде чем […]

Использование LiveData с привязкой данных

Со стабилизацией компонентов Android Architecture я начал обновлять все мои основные ViewModel s до новой реализации ViewModel . По моему LiveData , использование LiveData рекомендуется удерживать класс Model так как он лучше управляет жизненным циклом. Мне нравится использовать Data Binding потому что он делает код более ясным в Java / Kotlin, и нет необходимости «смотреть» […]

Intereting Posts
GSON – преобразование строки в JsonArray MyObjectBox не генерируется в kotlin (библиотека объектов) Ошибка: com.app.android.dagger.component.AppComponent (unscoped) может не ссылаться на привязки с привязкой: Как обновить классы данных, реализующие общий интерфейс Список, содержащий значения NULL, в NULL-список в Kotlin Как я могу инициализировать переменную перед каждым тестом, используя kotlin-test framework Как наблюдать данные PagedList? kotlin coroutine throws java.lang.IllegalStateException: уже возобновлено, но получил значение Место Android ViewPager – Как принудительно удалить все предметы? Тип союза между Any? и блок Kotlin: Оператор '==' не может применяться к 'kotlin.Int' и 'Person?' ошибка Есть ли способ получить поведение FixedTreadPool с помощью сопрограмм? Воспоминание функции-члена класса данных Kotlin Как контролировать, когда импорт заменяется шаблоном в Android Studio в файлах Kotlin Как передать массив объектов с Android на React Native?