Jetpack

📈【Jetpack】Android LiveData 存活資料 範例💻

📈【Jetpack】Android LiveData 存活資料 範例💻

LiveData 是在 Android 框架中推出的一個新技術,它可以讓開發者在 Android 中實現資料狀態和 UI 資料綁定。

它極大地改善了開發者與 UI 和資料之間的雙向綁定,並且具有很強的生命週期意識,這能讓開發者更輕鬆地構建並保持其 Android 應用程式的整個生命週期中的 UI。

LiveData 同時能憐愛開發者,讓他們只需要針對後端資料的更改做應對,而不用擔心重新載入和重繪整個 UI。


文章目錄

  1. LiveData ViewModel
  2. LiveData
  3. Developer Documents LiveData

1.LiveData ViewModel

Person.kt
data class Person(
    val name: String = "",
    val age: Int = 0
)
PersonViewModel.kt
class PersonViewModel : ViewModel() {

    private val _name = MutableLiveData<String>()
    val name: LiveData<String> = _name

    private val _person = MutableLiveData<Person>()
    val person: LiveData<Person> = _person

    fun changeValue() {
        _name.value = "wade"
        _person.value = Person("wade", 25)
    }
}

2.LiveData

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()

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

        viewModel.name.observe(this) { name ->
            Toast.makeText(this, name, Toast.LENGTH_SHORT).show()
        }

        viewModel.person.observe(this) { person ->
            Toast.makeText(this, "{person.name}{person.age}", Toast.LENGTH_SHORT).show()
        }

        viewModel.changeValue()
    }
}

3.Developer Documents LiveData

Open in Documents LiveData

發表迴響