Jetpack

💻【Jetpack】Android ViewModel 視圖模型 範例📈

💻【Jetpack】Android ViewModel 視圖模型 範例📈

Android ViewModel 是一種為 Android 應用開發者提供存儲和操作輸入和狀態數據的模型。

它有助於保留活動和片段状态,使開發過程更加高效和安全,并為用戶和開發者帶來便利。 對於 Android 應用開發者來說,了解 ViewModel 的重要性是一個重要的幾乎“必不可少”的步驟。

本文將提供一個簡要介紹,以便思考如何有效地開發使用 ViewModel 的 Android 應用程序。


文章目錄

  1. ViewModel
  2. ViewModel 創建方式(一)
  3. ViewModel 創建方式(二)
  4. Developer Documents ViewModel

1.ViewModel

PersonViewModel.kt
class PersonViewModel : ViewModel() {
    val name = "Wade"
    val age = 25
}

2.ViewModel 創建方式(一)

MainActivity.kt
class MainActivity : AppCompatActivity() {

    private lateinit var viewModel: PersonViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewModel = ViewModelProvider(this)[PersonViewModel::class.java]

        Toast.makeText(this, viewModel.name, Toast.LENGTH_SHORT).show()
        Toast.makeText(this, viewModel.age.toString(), Toast.LENGTH_SHORT).show()
    }
}

3.ViewModel 創建方式(二)

build.gradle
dependencies {
    def fragment_version = "1.5.5"
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
}
MainActivity.kt
class MainActivity : AppCompatActivity() {

    private val viewModel: PersonViewModel by viewModels()
    // private val viewModel by viewModels<PersonViewModel>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Toast.makeText(this, viewModel.name, Toast.LENGTH_SHORT).show()
        Toast.makeText(this, viewModel.age.toString(), Toast.LENGTH_SHORT).show()
    }
}

4.Developer Documents ViewModel

Open in Documents ViewModel

發表迴響