再加第二個按扭,按一下就顯示“Hello world !”
package com.example.myapplication
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.example.myapplication.ui.theme.MyApplicationTheme
// 將 enum class 移到 @Composable 函數外部
enum class DisplayText { NONE, ANDROID, WORLD }
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
Greeting()
}
}
}
}
@Composable
fun Greeting(modifier: Modifier = Modifier) {
// 使用 enum 狀態
var displayedText by remember { mutableStateOf(DisplayText.NONE) }
Column(
modifier = modifier.fillMaxSize().padding(16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(
onClick = {
displayedText = if (displayedText == DisplayText.ANDROID) DisplayText.NONE
else DisplayText.ANDROID
},
modifier = Modifier.padding(bottom = 8.dp)
) {
Text(text = if (displayedText == DisplayText.ANDROID) "Hide Android"
else "Show Android")
}
Button(
onClick = {
displayedText = if (displayedText == DisplayText.WORLD) DisplayText.NONE
else DisplayText.WORLD
},
modifier = Modifier.padding(bottom = 8.dp)
) {
Text(text = if (displayedText == DisplayText.WORLD) "Hide World"
else "Show World")
}
when (displayedText) {
DisplayText.ANDROID -> Text("Hello Android!", Modifier.padding(top = 16.dp))
DisplayText.WORLD -> Text("Hello World!", Modifier.padding(top = 16.dp))
DisplayText.NONE -> {} // 不顯示任何文本
}
}
}
運行效果:
初始畫面有兩個按鈕:
"Show Android" 和 "Show World"。
點擊按鈕後:
點擊 "Show Android" → 顯示 "Hello Android!",按鈕文字變為 "Hide Android"。
點擊 "Show World" → 顯示 "Hello World!",按鈕文字變為 "Hide World"。
再次點擊按鈕 → 隱藏對應的文本。