按下按鈕後跳轉到 SecondActivity

MainActivity.kt

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            MainScreen()
        }
    }
}

@Composable
fun MainScreen() {
    Box(
        modifier = Modifier
            .fillMaxSize(),
    ) {
        val context = LocalContext.current
        Button(
            onClick = {
                val intent = Intent(context, SecondActivity::class.java)
                context.startActivity(intent)
            },
            modifier = Modifier
                .align(Alignment.Center)
        ) {
            Text(
                text = "Open New Activity"
            )
        }
    }
}

SecondActivity.kt

class SecondActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            SecondScreen {
                finish()
            }
        }
    }
}

@Composable
fun SecondScreen(
    onBackClicked: () -> Unit
) {
    Box(
        modifier = Modifier
            .fillMaxSize()
    ) {
        Button(
            onClick = onBackClicked,
            modifier = Modifier
                .align(Alignment.Center)
        ) {
            Text(
                text = "Back"
            )
        }
    }
}

finish() 會結束目前的 SecondActivity,然後返回 backstack 裏的上一個 Activity,也就是 MainActivity

LocalContext.current 只能使用在 Composable function 中

Last modified: 2025 年 8 月 1 日

Author

Comments

Write a Reply or Comment

Your email address will not be published.