class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CountupTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
val activity = LocalContext.current as? Activity
val sharedPref = remember { activity?.getPreferences(Context.MODE_PRIVATE) }
var count by remember {
val countValue = sharedPref?.getInt("counter", 0) ?: 0
mutableStateOf(countValue)
}
var time by remember {
val timeValue = sharedPref?.getString("timer", "") ?: null
mutableStateOf(timeValue)
}
Box(modifier = Modifier.fillMaxSize()) {
Column(
modifier = Modifier.align(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(
onClick = { count++ },
modifier = Modifier
.size(200.dp, 200.dp)
.padding(40.dp),
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xffcc99ff),
contentColor = Color.White
)
) {
Text(
text = "${count}",
color = Color.White,
fontWeight = FontWeight.Bold,
fontSize = 50.sp
)
}
MyButton(text = "zero") {
count = 0
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "decrease") {
count--
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "double") {
count *= 2
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
MyButton(text = "half") {
count /= 2
sharedPref?.edit {
putInt("counter", count)
apply()
}
}
Button(
onClick = {
//참고
time = showCurrentTime()
sharedPref?.edit {
putString("timer", time)
apply()
}
},
modifier = Modifier
.size(200.dp, 80.dp)
.padding(10.dp),
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xff75bbcf),
contentColor = Color.White
)
)
{
Text(
//참고
text = "$time",
color = Color.White,
fontWeight = FontWeight.Bold,
fontSize = 30.sp
)
}
}
}
}
}
}
}
}
//현재 시간 보여주는 함수
fun showCurrentTime() : String{
val time = SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(Date())
return time
}
@Composable
fun MyButton(text: String, onClick: () -> Unit) {
Button(
onClick = onClick,
modifier = Modifier
.size(200.dp, 80.dp)
.padding(10.dp),
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xff75bbcf),
contentColor = Color.White
)
)
{
Text(
text = "$text",
color = Color.White,
fontWeight = FontWeight.Bold,
fontSize = 30.sp
)
}
}