扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

android viewmodel鎬庝箞浣跨敤

扬州沐宇科技
2024-01-25 16:38:39
android

Android ViewModel 鏄竴涓璁℃ā寮忥紝鐢ㄤ簬绠$悊鍜屼繚瀛樹笌 UI 鐩稿叧鐨勬暟鎹€傚畠鐨勪富瑕佺洰鐨勬槸鍦ㄩ厤缃洿鏀癸紙濡傛棆杞睆骞曪級鎴栧簲鐢ㄧ▼搴忚繘鍏ュ悗鍙板苟閲嶆柊鍚姩鏃朵繚鎸佹暟鎹殑涓€鑷存€с€?/p>

瑕佷娇鐢?Android ViewModel锛屾偍闇€瑕侀伒寰互涓嬫楠わ細

  1. 娣诲姞 ViewModel 鏀寔搴撲緷璧栭」鍒版偍鐨勬ā鍧楃骇 build.gradle 鏂囦欢涓細
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
  1. 鍒涘缓涓€涓户鎵?ViewModel 鐨勭被锛岃绫诲皢淇濆瓨鎮ㄧ殑 UI 鐩稿叧鏁版嵁銆備緥濡傦細
import androidx.lifecycle.ViewModel

class MyViewModel : ViewModel() {
    // 淇濆瓨鎮ㄧ殑 UI 鐩稿叧鏁版嵁鐨勬垚鍛樺彉閲?/span>
}
  1. 鍦ㄦ偍鐨?Activity 鎴?Fragment 涓幏鍙?ViewModel 鐨勫疄渚嬶細
import androidx.lifecycle.ViewModelProvider

val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

鍦ㄨ繖閲岋紝this 鏄偍鐨?Activity 鎴?Fragment 瀹炰緥锛?code>MyViewModel 鏄偍鍒涘缓鐨?ViewModel 绫汇€?/p>

  1. 鐜板湪锛屾偍鍙互鍦ㄦ偍鐨?UI 缁勪欢涓娇鐢?ViewModel 涓殑鏁版嵁銆備緥濡傦紝鍦?Activity 涓紝鎮ㄥ彲浠ヤ娇鐢ㄤ互涓嬫柟寮忚缃枃鏈鍥剧殑鏂囨湰锛?/li>
textView.text = viewModel.myData

鍦ㄨ繖閲岋紝myData 鏄?MyViewModel 涓殑涓€涓垚鍛樺彉閲忋€?/p>

  1. 褰撴偍鐨?Activity 鎴?Fragment 閿€姣佹椂锛孷iewModel 鐨勫疄渚嬩粛鐒跺瓨鍦紝浠ヤ究鍦ㄤ笅涓€娆″垱寤烘椂鎭㈠鏁版嵁銆?/li>

璇锋敞鎰忥紝鎮ㄥ彲浠ュ湪 ViewModel 涓娇鐢?LiveData 鏉ヨ瀵熷拰鍝嶅簲鏁版嵁鐨勬洿鏀广€傝繖鏍凤紝鎮ㄧ殑 UI 缁勪欢鍙互鏍规嵁鏁版嵁鐨勬洿鏂拌嚜鍔ㄦ洿鏂般€傛湁鍏?LiveData 鐨勬洿澶氫俊鎭紝璇峰弬闃匧iveData 鏂囨。銆?/p>

杩欏氨鏄娇鐢?Android ViewModel 鐨勫熀鏈楠ゃ€傛偍鍙互鏍规嵁鎮ㄧ殑闇€姹傝繘涓€姝ュ畾鍒跺拰鎵╁睍 ViewModel銆?/p>

扫码添加客服微信