Android 앱 개발 with kotlin - BMI 계산기 만들기

Park Jungmin·2022년 3월 25일
0

Android Studio

목록 보기
3/3

안드로이드 앱의 페이지 생성을 위해서 필요한 3가지

  1. kotlin으로 구성된 Activity 파일
  2. 해당 Activity 파일의 Layout을 정의해주는 .xml파일
  3. 해당 Activity를 manifests에 추가 해주기

1. kotlin으로 구성된 Activity 파일

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)  //activity_main.xml 파일 layout을 보여줘라
        }
}
val heightEditText: EditText = findViewById(R.id.heightEditText)
val weightEditText = findViewById<EditText>(R.id.weightEditText)

layout에서 정의한 각 요소들을 가져다가 쓸 때 어떤 형인지 위의 코드 처럼 알려주어야 한다.

setOnClickListener, 인텐트(intent) 화면 전환(MainActivity -> ResultActivity)

// resultButton이 클릭 되었을 때 실행 
resultButton.setOnClickListener {
            val height: Int = heightEditText.text.toString().toInt()
            val weight: Int = weightEditText.text.toString().toInt()
            val intent = Intent(this, ResultActivity::class.java)   // 인텐트 선언            
     // 인텐트로 값 넘겨주기
            intent.putExtra("height", height) 
            intent.putExtra("weight", weight)
            startActivity(intent)
        }

인텐트(intent) 화면 전환(ResultActivity)

class ResultActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_result) 
        // MainActivity에서 넘겨준 값 받기
        val height = intent.getIntExtra("height", 0)
        val weight = intent.getIntExtra("weight", 0)
        Log.d("ResultActivity", "height : $height weight : $weight")
        }
 }

2. Layout을 정의해주는 .xml파일

LinearLayout으로 만들기

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent" // 부모에 맞춤
    android:layout_height="match_parent"
    android:orientation="vertical" // 수직으로 쌓음
    android:padding="16dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/height" // static한 값은 values > string.xml으로 따로 관리해주는 것이 편함
        android:textColor="@color/custom_black" // 색상도 values > color.xml으로 따로 관리해주는 것이 편함
        android:textSize="20sp"
        android:textStyle="bold" />
    <EditText
        android:id="@+id/heightEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:inputType="number" />
        .
        .
        .
    <Button
        android:id="@+id/resultButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:text="@string/confirm" />
</LinearLayout>

3. Activity를 manifests에 추가하기

<activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>
<activity android:name=".ResultActivity" /> // 추가

0개의 댓글

관련 채용 정보