JetPack 4

LiveData 와 MutableLiveData

MutableLiveData는 Abstract Class 인 LiveData를 구현한 Public Class 위 말을 풀어 보면, 1. LiveData는 추상 클래스이므로 직접 생성할 수 없다. public abstract class LiveData { protected void postValue(T value) {} @MainThread protected void setValue(T value) {} //데이터 수정은 pretected 메서드를 구현해서 사용해야 한다. } val name : LiveData = LiveData() 위와 같이 직접 생성할 경우 아래와 같이 에러가 발생한다. cannot create an instance of an abstract class 반면에 MutableLiveDa..

[Sunflower 디비보기] Activity, Fragment, Navigation 시작

Activity 최초 액티비티에서 activity_garden 을 layout으로 설정하게 되면 GardenActivity.kt class GardenActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(this, R.layout.activity_garden) } } NagGraph R.layout.activity_garden 에서는 이후 연결되는 view들을 아래와 같이 관리할 navigaion을 지정한다. app:navGraph="@navigation/nav_garden" R.layout.activity_garde..

[Sunflower 디비보기] 데이터 바인딩과 HtmlCompat.fromhtml

TextView 에 Html 형식으로 글자를 바꿀 수 있다. 데이터 바인딩을 통해 바인딩 어뎁터(BindingAdapter)로 연결하면 간단하게 구현 할 수 있다. @BindingAdapter("renderHtml") fun bindRenderHtml(view: TextView, description: String?) { if (description != null) { view.text = HtmlCompat.fromHtml(description, FROM_HTML_MODE_COMPACT) view.movementMethod = LinkMovementMethod.getInstance() } else { view.text = "" } } 입력) plant.description = 동해물과 백두산이(from..

[Sunflower 디비보기] ViewModel 주입(초기화) 과정

요약 viewModel 주입(Injection) Repository 와 ViewModel 을 생성 해서 Factory 에 넣은 다음 by 로 위임된 viewModels 에 주면 viewModel 을 주입해준다.(ktx 로 ViewModelProvider.get()와 같은 역활을 한다.) 결국 viewModel (LiveData) > repository > dao > db 요렇게 연결 되어서 view 와 연결되어 작업이 될 것 이다. M-V-VM private val viewModel: GardenPlantingListViewModel by viewModels { InjectorUtils.provideGardenPlantingListViewModelFactory(requireContext()) } Fact..