Android - Fragment 간 공유되는 ViewModel

2022. 5. 10. 18:12IT/안드로이드

반응형

 

 

UI 요소가 자동으로 업데이트 되도록 하려면, binding, lifecycleOwner 를 App의 수명 주기 소유자와 연결해야 한다. !!

*  LiveData 변환을 사용하여 형식 지정. 

Transformations.map() 을 사용해 변환한다.. 흠. 이 함수는 LiveData 소스를 조작하고, 관찰 할 수도 있는 업데이트된 값을 반환한다.
LiveData 변환을 사용할 수 있는 몇 가지 실시간 예는 다음과 같다. 
> 표시할 날짜 및 시간 문자열 형식 지정.
> 항목 목록 정렬
> 항목 필터링 또는 그룹화
> 모든 항목 합계, 항목 수, 마지막 항목 반환 등과 같이 목록의 결과 계산.
통화 단위 설정인데, NumberFormat.getCurrencyInstance().Format() 을 사용해 변환했다. 


* ListnerBinding 사용해 Click Listener 설정.

 

오호라... 역시 실습이 답이구만 !!!

재밌다 ! 

 

## 요약 ##

  • ViewModel Android 아키텍처 구성요소의 일부이며, ViewModel 내에 저장된 앱 데이터는 구성 변경 중에도 유지됩니다. 앱에 ViewModel을 추가하려면 새 클래스를 만들어 ViewModel 클래스에서 확장합니다.
  • 공유 ViewModel은 여러 프래그먼트의 앱 데이터를 단일 ViewModel에 저장하는 데 사용됩니다. 앱의 여러 프래그먼트는 활동 범위를 사용하여 공유 ViewModel에 액세스합니다.
  • LifecycleOwner는 활동이나 프래그먼트와 같이 Android 수명 주기를 보유한 클래스입니다.
  • LiveData 관찰자는 수명 주기 소유자가 활성 상태(STARTED 또는 RESUMED)인 경우에만 앱 데이터의 변경사항을 관찰합니다.
  • 리스너 결합은 onClick 이벤트와 같은 이벤트가 발생할 때 실행되는 람다 표현식입니다. 리스너 결합은 textview.setOnClickListener(clickListener)와 같은 메서드 참조와 비슷하지만, 리스너 결합을 사용하면 임의의 데이터 결합 표현식을 실행할 수 있습니다.
  • LiveData 변환 메서드는 LiveData 소스에서 데이터 조작을 실행하고 결과 LiveData 객체를 반환하는 방법을 제공합니다.
  • Android 프레임워크는 언어에 민감한 방식으로 날짜 형식을 지정하고 파싱하는 클래스인 SimpleDateFormat이라는 클래스를 제공합니다. 이 클래스를 통해 날짜의 형식 지정(날짜 → 텍스트) 및 파싱(텍스트 → 날짜)이 가능합니다.

 

 

** 다시 정리해서 써야딩... ㅠㅠ 에고고

728x90
반응형