티스토리 뷰

Android Projects

[BMI Calculator] 최종 완성

IT Knowledge Share 2021. 7. 25. 02:24
반응형

MainActivity에서 ResultActivity로 넘어가는 부분을 확인해 봅니다.

 

먼저, 결과를 나타내주는 레이아웃을 먼저 확인해 봅니다. 간단하게 BMI 지수와 결과를 나타내주는 텍스트뷰만 추가하도록 합니다.

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:padding="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/bmiTitle"
            android:textStyle="bold"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/bmiView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            tools:text="18.1111" />
            
            *** 이하 생략 ***

</LinearLayout>
반응형

이제 액티비티 파일로 넘어갑니다.

우선 intent.putExtra로 넘겨준 값을, getIntExtra로 받습니다. 인자로는 이름과 디폴트 값이 오는데 값이 넘어오지 않은 경우 '0'으로 설정했습니다.

 

bmi 변수에는 실제 BMI 지수를 계산하는 식을 넣었는데, 제곱근 함수(pow)를 사용하였습니다.

그리고 결과를 보여주는 resultText 변수에는 when 구문을 사용해서 경우의 수를 나타내줍니다.

val height = intent.getIntExtra("height", 0)
val weight = intent.getIntExtra("weight", 0)
val bmi = weight / (height / 100.0).pow(2.0)

val finalResult = when {
bmi >= 35.0 -> "Greater Obesity"
bmi >= 30.0 -> "Obesity"
bmi >= 25.0 -> "Overweight"
bmi >= 23.0 -> "Chubby"
bmi >= 18.5 -> "Normal Weight"
else -> "Underweight"
}

마지막으로 각 텍스트뷰를 찾아 resultbmiView, finalView 변수에 담아주고, 이들의 텍스트에 BMI 지수를 계산했던 bmi와 when 구문을 사용해서 경우에 따라 결과를 보여줬던 finalResult를 넣어주면 됩니다.

val resultbmiView = findViewById<TextView>(R.id.bmiView)
val finalView = findViewById<TextView>(R.id.resultTextView)

resultbmiView.text = bmi.toString()
finalView.text = finalResult

 

최종 결과는 다음과 같습니다.

반응형
댓글