안드로이드 학습(Compose)

간단한 버튼 동작 구현해보기

리저브콜드브루 2025. 3. 4. 10:36
728x90
반응형

버튼 클릭마다 증가된 Count값이 Text로 표시되도록 구현하려고 한다

 

Greeting() 수정 (디자인)

  • Column 추가
  • Text 추가
  • Button 추가
@Composable
fun Greeting(clickCnt: Int, onClicked:()->Unit) {
    Column(){     
        Text(text = "클릭된 카운트 : $clickCnt") //Text 할당
        Button(onClick = onClicked) { //onClicked 값 전달
            Text(text = "클릭해주세요")
        }
    }
}

디자인 결과

 

동작 추가

  • clickCnt 변수 추가 및 전달
  • onClicked 내용 추가
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            BasicsCodelabTheme {
            	var clickCnt: MutableState<Int> = remember { mutableStateOf(0) } // 변수 추가         

                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Column() {
                        Greeting(
                            clickCnt.value, // 변수 전달
                            onClicked = {
                                Log.d("MainActivity", "onCreate: 클릭됨")
                                clickCnt.value += 1 // Clcick 액션
                            }
                        )
                    }
                }
            }
        }
    }
}

 

동작 영상

 

728x90
반응형