Android Studio With Kotlin (Test01)

jeongho park·2024년 3월 17일
0
post-thumbnail

Android Studio로 kotlin을 진행 해 보자

최종 목표

  • 기존에 개발한 Spring Boot와 연동해서 Login을 통해 게시판을 CRUD하는걸 만들어 보자

Android Studio 설치

구조에 대한 연구

  • MainActivity와 activity_main.xml은 한쌍으로 가는것 같다.
  • xml은 html같은 느낌, MainActivity는 javascript 같은 느낌이다.
  • 정확한 내용을 보니 xml은 View역할, MainActivity.kt는 Controller 역할이라고 한다.

android studio로 kotlin을 만들면 app/kotlin+java/com/example/tp02/MainActivity가 있고
내용은 다음과 같다.

activity_main.xml

<?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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_margin="20dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/et_a"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="Enter a " />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et_b"
        android:layout_margin="20dp"
        android:hint="Enter b "/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_add"
            android:layout_margin="4dp"
            android:text="+"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_sub"
            android:layout_margin="4dp"
            android:text="-"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_multiple"
            android:layout_margin="4dp"
            android:text="*"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_division"
            android:layout_margin="4dp"
            android:text="/"/>
    </LinearLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/resultA"
        android:text="Result "
        android:textSize="24sp"
        android:layout_margin="20dp"
        android:gravity="center"/>

</LinearLayout>
  • 여기서 중요한건 id 선언정도 인것같다.

MainActivity.kt

package com.example.tp02

class MainActivity : AppCompatActivity() {
    //선언 부분
    lateinit var btnAdd : Button
    lateinit var btnSub : Button
    lateinit var btnMultiply : Button
    lateinit var btnDivision : Button
    lateinit var etA : EditText
    lateinit var etB : EditText
    lateinit var resultA : TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btnAdd = findViewById(R.id.btn_add)
        btnSub = findViewById(R.id.btn_sub)
        btnMultiply = findViewById(R.id.btn_multiple)
        btnDivision = findViewById(R.id.btn_division)
        etA = findViewById(R.id.et_a)
        etB = findViewById(R.id.et_b)
        resultA = findViewById(R.id.resultA)


        btnAdd.setOnClickListener{
            val a = etA.text.toString().toIntOrNull()
            val b = etB.text.toString().toIntOrNull()

            if(a != null && b != null) {
                val result = a+b
                resultA.text = "Result : $result" //결과를 텍스트 뷰에 표시

            } else {
                resultA.text = "Please enter valid numers"
            }
        }


    }

}
  • 순서는 xml을 보여주고 보여준 이후에 어떤 값들을 클릭하거나 동작을 하면 MainActivity.kt가 그 값을 물어서 동작하는 방식인것 같다.

  • Spring boot랑 연동만 시켜주면 api로 값을 불러다가 모바일 화면에 뿌려줄 수 있을것 같은 두근두근 느낌이 든다.

profile
BackEnd 개발자

0개의 댓글