gradle dependencies { implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.1" implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07" implementation "androidx.compose.ui:ui:1.1.0-beta01" implementation "androidx.compose.material:material:1.1.0-beta01" } import androidx.lifecycle.ViewModel class MyViewModel : ViewModel() { lateinit var data: String fun fetchData() { data = "Hello, World!" } } kotlin import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.layout.Column import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewmodel.compose.viewModel class MainActivity : AppCompatActivity() { private val viewModel: MyViewModel by viewModel() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyScreen(viewModel) } } } @Composable fun MyScreen(viewModel: MyViewModel) { val data = viewModel.data.observeAsState() Column { Text(text = data.value ?: "Loading...") Button(onClick = { viewModel.fetchData() }) { Text(text = "Fetch Data") } } }


上一篇:
下一篇:
切换中文