디비보기 3

[Sunflower 디비보기] Detail View 에서 Garden 으로 아이템 담기 MVVM

2개의 탭이 있으며, 좌측에는 나의 정원, 우측에는 식물 리스트가 있다. 여러 종류의 식물들이 있는 식물 리스트에서 식물을 하나 선택하면 그 식물의 Detail View로 간다. DetailView에서 나의 정원으로 담기를 누를 경우 선택된 식물이 나의 정원에 담기는데, 이 일련의 과정(MVVM)들의 흐름을 알아본다. View layout 은 데이터 바인딩을 사용하고 viewModel을 통해 View를 업데이트하고, callback을 등록해서 add 버튼에 바로 동작하게 한다 frament_plant_detail.xml callback 은 아래 Fab버튼을 눌렀을 때 반응하도록 onClick 리스너에 등록해준다 View -담기 버튼의 동작을 위한 작업 ViewModel 생성(참고: ViewMode 주입)..

[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..