[AndroidStudio] 개인프로젝트 코드_intent를 활용한 값 전달

Jean·2023년 8월 17일
1

#MainActivity

 QuestionsTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
        //변수
            //기능 변수
                    var context = LocalContext.current
                    val db = remember { AppDatabase.getDatabase(context) }
                    val scope = rememberCoroutineScope()
            //질문&답변 변수
                    var one by remember { mutableStateOf("") }
                    var two by remember { mutableStateOf("") }
                    var three by remember { mutableStateOf("") }
                    var four by remember { mutableStateOf("") }
                    var savedone by remember { mutableStateOf("") }
                    var savedtwo by remember { mutableStateOf("") }
                    var savedthree by remember { mutableStateOf("") }
                    var savedfour by remember { mutableStateOf("") }
                    var uid by remember { mutableStateOf(0) }
            //코드
                    Column(horizontalAlignment = Alignment.CenterHorizontally) {
                        Text(text = "1. 내 생년월일?")
                        Question(num1 = one, num2 = { one = it })
                        Text(text = "2. 내 MBTI?")
                        Question(num1 = two, num2 = { two = it })
                        Text(text = "3. 내가 가고 싶은 여행지?")
                        Question(num1 = three, num2 = { three = it })
                        Text(text = "4. 내가 좋아하는 음식?")
                        Question(num1 = four, num2 = { four = it })

                        Button(onClick = {
                            savedone = one
                            savedtwo = two
                            savedthree = three
                            savedfour = four

                            val oldUser = FirstUser(
                                uid = uid,
                                one = one,
                                two = two,
                                three = three,
                                four = four
                            )
                            scope.launch(Dispatchers.IO) {
                                db.userADao().insertAll(oldUser)
                            }
                            val intent1 = Intent(context, MainActivity2::class.java)
                            intent1.putExtra("firstuid", uid)
                            intent1.putExtra("firstone", savedone)
                            intent1.putExtra("firsttwo", savedtwo)
                            intent1.putExtra("firstthree", savedthree)
                            intent1.putExtra("firstfour", savedfour)
                            context.startActivity(intent1)
                        }) {
                            Text(text = "완료")
                        }
                    }
                }
            }
        }
    }
}

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Question(num1: String, num2: (String) -> Unit) {
    TextField(value = num1, onValueChange = num2)
}

#MainActivity2

 QuestionsTheme {
                var context = LocalContext.current
                val db = remember { AppDatabase.getDatabase(context) }
                val scope = rememberCoroutineScope()
                var one by remember { mutableStateOf("") }
                var two by remember { mutableStateOf("") }
                var three by remember { mutableStateOf("") }
                var four by remember { mutableStateOf("") }
                var savedone by remember { mutableStateOf("") }
                var savedtwo by remember { mutableStateOf("") }
                var savedthree by remember { mutableStateOf("") }
                var savedfour by remember { mutableStateOf("") }
                var uid by remember { mutableStateOf(0) }

                Column(horizontalAlignment = Alignment.CenterHorizontally) {
                    Text(text = "1. 너의 생년월일?")
                    Question(num1 = one, num2 = { one = it })
                    Text(text = "2. 너의 MBTI?")
                    Question(num1 = two, num2 = { two = it })
                    Text(text = "3. 너가 가고 싶은 여행지?")
                    Question(num1 = three, num2 = { three = it })
                    Text(text = "4. 너가 좋아하는 계절?")
                    Question(num1 = four, num2 = { four = it })

                    var firstuid2 = intent.getIntExtra("firstuid", 0)
                    var firstone2 = intent.getStringExtra("firstone")
                    var firsttwo2 = intent.getStringExtra("firsttwo")
                    var firstthree2 = intent.getStringExtra("firstthree")
                    var firstfour2 = intent.getStringExtra("firstfour")

                    Button(onClick = {
                        savedone = one
                        savedtwo = two
                        savedthree = three
                        savedfour = four

                        val newUser = SecondUser(
                            uid = uid,
                            one = one,
                            two = two,
                            three = three,
                            four = four
                        )
                        scope.launch(Dispatchers.IO) {
                            db.userBDao().insertAll(newUser)
                        }

                        val intent2 = Intent(context, MainActivity3::class.java)
                        intent2.putExtra("seconduid", uid)
                        intent2.putExtra("secondone", savedone)
                        intent2.putExtra("secondtwo", savedtwo)
                        intent2.putExtra("secondthree", savedthree)
                        intent2.putExtra("secondfour", savedfour)
                        intent2.putExtra("firstuid3", firstuid2)
                        intent2.putExtra("firstone3", firstone2)
                        intent2.putExtra("firsttwo3", firsttwo2)
                        intent2.putExtra("firstthree3", firstthree2)
                        intent2.putExtra("firstfour3", firstfour2)
                        context.startActivity(intent2)

                    }) {
                        Text(text = "완료")
                    }
                }
            }
        }
    }
}

#MainActivity

  QuestionsTheme {
                Column {
                    val b = intent.getStringExtra("firstone3")
                    var c = intent.getStringExtra("firsttwo3")
                    var d = intent.getStringExtra("firstthree3")
                    var e = intent.getStringExtra("firstfour3")
                    var g = intent.getStringExtra("secondone")
                    var h = intent.getStringExtra("secondtwo")
                    var i = intent.getStringExtra("secondthree")
                    var j = intent.getStringExtra("secondfour")

                    var score = 0
                    if (b == g) {
                        score += 1
                    } else {
                        score += 0
                    }
                    if (c == h) {
                        score += 1
                    } else {
                        score += 0
                    }
                    if (d == i) {
                        score += 1
                    } else {
                        score += 0
                    }
                    if (e == j) {
                        score += 1
                    } else {
                        score += 0
                    }

                    var result = (score.toDouble() / 4) * 100
                    val formattedResult = String.format("%.2f", result)
                    Text(text = "최종 점수 : $formattedResult %")
                }

            }
        }
    }
}
profile
아 왜 안돼

0개의 댓글