android viewmodel 예제

먼저 Android 설명서를 방문하여 ViewModel이 어떻게 사용되는지 살펴보겠습니다. 다음 코드는 활동에서 구성 변경 시 유지되는 ViewModel을 제공하기 위해 SDK를 사용하는 방법의 예입니다. UI 데이터에 액세스하거나 변경하려면 이제 ViewModel에서 데이터를 사용할 수 있습니다. 다음은 새로운 onCreate 방법의 예와 팀 A에 1 점을 추가하여 점수를 업데이트하는 방법입니다 : Google I / O 2017에서 안드로이드 프레임 워크 팀은 새로운 Android 아키텍처 구성 요소를 발표했습니다. 즉 ViewModel, LiveData 및 기타 수명 주기 인식 구성 요소입니다. 이 게시물에서 우리는 그들의 가치를 탐구할 것입니다. 사용되는 모든 예제의 소스 코드는 게시물 하단에 연결됩니다. 시스템에서 UI 컨트롤러를 파괴하거나 다시 만들면 UI 컨트롤러에 저장하는 일시적인 UI 관련 데이터가 손실됩니다. 예를 들어 앱에 해당 활동 중 하나에 사용자 목록이 포함될 수 있습니다. 구성 변경에 대해 활동을 다시 만들면 새 활동이 사용자 목록을 다시 가져와야 합니다. 간단한 데이터의 경우 활동은 onSaveInstanceState() 메서드를 사용하고 번들에서 데이터를 복원할 수 있지만 이 방법은 잠재적으로 많은 양의 데이터가 아니라 직렬화할 수 있는 소량의 데이터에만 적합합니다. 사용자 또는 비트맵 목록과 같습니다. XML의 각 목록 행에 대해 정의된 ImageButton이 있습니다.

안드로이드 :onClick 방법은 저기, deleteFav ()를 호출합니다. 아래 다이어그램에서 회전을 거쳐 마침내 완료되는 활동의 수명 주기를 볼 수 있습니다. ViewModel의 수명은 연결된 활동 수명 주기 옆에 표시됩니다. ViewModel은 UI 컨트롤러라고 부르는 프래그먼트와 액티비티 모두에서 쉽게 사용할 수 있습니다. 이 예제에서는 활동에 중점을 둡니다. 이 예제에서는 ViewModel에 사용자 ID를 전송하여 의도의 번들에서 가져오는 것입니다. 이 예제에서는 ID를 실제로 사용하지 않고 LiveData라는 이름으로 값을 설정하여 바인딩을 테스트합니다. 그러나 라이브러리가 ViewModel을 만들고 활동 또는 조각에 페어링할 때 이 init 블록에 넣은 코드는 한 번만 실행됩니다. 왜 xml clicklists 는 보기 모델 클래스에서 작동하지 않는 이유는 최근에 Google의 안드로이드 아키텍처 구성 요소, 주로 ViewModel 및 LiveData를 사용하기 시작했는데, 특히 이제 Data 개체를 데이터 바인딩 식에서 관찰 가능한 필드로 사용할 수 있기 때문입니다. . ViewModel을 사용하여 응용 프로그램을 빌드할 때 해당 범위가 활성 상태인 한 데이터가 유지됩니다(조각 또는 활동일 수 있음)은 개체 및 데이터 다시 가져오기를 불필요하게 사용하지 않습니다.

이는 구성 변경(예: 회전)과 같은 상황에서 실제로 도움이 됩니다. ViewModel 및 LiveData가 무엇인지, 어떻게 그리고 왜 사용하는지 설명하는 아주 좋은 기사가 많이 있습니다. 먼저 읽는 것이 좋습니다. 이 문서에서는 ViewModel의 인스턴스를 만드는 방법, 라이브러리에서 제공하는 메서드의 일부 결함 및 이를 개선하는 방법에 대해 중점합니다. ViewModel 개체는 뷰 또는 수명 주기 소유자의 특정 인스턴스화보다 오래 유지되도록 설계되었습니다. 또한 이 디자인은 뷰 및 수명 주기 개체에 대해 알지 못하므로 ViewModel을 보다 쉽게 커버하기 위한 테스트를 작성할 수 있습니다.