As an example. In an Activity we have our TimerViewModel object (extended ViewModel), named mTimerViewModel. mTimerViewModel.getTimer() method returns a LiveData<Long> value. What can be a correct way to set an observer to change UI in case if data was changed?
LiveData.postValue() and LiveData.setValue() methods have some differences. So if you have a following code executed in the main thread: liveData.postValue("a"); liveData.setValue("b");What will be the correct statement?
In our TeaViewModel class, that extends ViewModel, we have such method: public LiveData<Tea> getTea() { return mTea;}An observer in our Activity (type of mViewModel variable in example is TeaViewModel) is set in this way: mViewModel.getTea().observe(this, this::displayTea);What will be a correct displayTea method definition?
For example, our preferences.xml file was added by addPreferencesFromResource(R.xml.preferences). Our preferences.xml file contains such item:<SwitchPreferenceandroid:id="@+id/notification"android:key="@string/pref_notification_key"android:title="@string/pref_notification_title"android:summary="@string/pref_notification_summary"android:defaultValue="@bool/pref_notification_default_value"app:iconSpaceReserved="false"/>In our Fragment, we can dynamically get current notification preference value in this way:
For example, our preferences.xml file was added by addPreferencesFromResource(R.xml.preferences). Our preferences.xml file contains such item:<ListPreferenceandroid:id="@+id/order_by"android:key="@string/pref_sort_key"android:title="@string/pref_sort_title"android:summary="@string/pref_sort_summary"android:dialogTitle="@string/pref_sort_dialog_title"android:entries="@array/sort_oder"android:entryValues="@array/sort_oder_value"android:defaultValue="@string/pref_default_sort_value"app:iconSpaceReserved="false" />In our Fragment, we can dynamically get current notification preference value in this way:
For example, we have a file in our raw folder app/src/main/res/raw/sample_teas.json. To get an InputStream for reading it, from out Context context, we can do this: