[Kotlin]형변환예제2/Type conversion example2

더 친절한 코틀린 앱프로그래밍 책에 있는 코드 입니다.
This is code from the Friendlier Kotlin App Programming book

형변환 예제입니다.
This is an example of type conversion.

이 코드는 뷰바인딩을 사용하지 않았습니다.
This code does not use view binding.

Test : compileSdk = 34 targetSdk = 34

MainActivity.kt

package com.example.app3

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.app3.constants.mBonus

class MainActivity : AppCompatActivity() {

    var nameInput:String? = null // nullable type
    lateinit var mobileInput:String // lateinit

    var valueInput1:String = ""
    var valueInput2:String = ""
    var firstValue:Int = 0
    var secondValue:Int = 0

    companion object{
        const val BONUS = 100
    }

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

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }



        val button = findViewById<Button>(R.id.button)
        val name = findViewById<EditText>(R.id.nameInput)
        val mobile = findViewById<EditText>(R.id.mobileInput)

        val button2 = findViewById<Button>(R.id.button2)
        val inputtext1 = findViewById<EditText>(R.id.inputText1)
        val inputtext2 = findViewById<EditText>(R.id.inputText2)
        val textView1 = findViewById<TextView>(R.id.textView)
        val textView2 = findViewById<TextView>(R.id.textView2)


        button.setOnClickListener(){
 
            nameInput = name.text.toString()
            mobileInput = mobile.text.toString()
            Toast.makeText(applicationContext,"이름name: $nameInput, 전화번호phoneNumber: $mobileInput",Toast.LENGTH_LONG).show()
            // kotlin style
            println("이름name: " + nameInput + "전화번호phoneNumber: " + mobileInput)
            // java style 
            System.out.println("이름name: " + nameInput + "전화번호phoneNumber: " + mobileInput)
        }

        button2.setOnClickListener(){

         valueInput1 = inputtext1.text.toString()
         valueInput2 = inputtext2.text.toString()
         firstValue =  valueInput1.toInt() 
         secondValue = valueInput2.toInt()

         val result:Any?
         result  = firstValue + secondValue + MainActivity.BONUS.toInt() + mBonus
         textView1.text = "결과result: $result"

         if(result == 20){
             textView1.text = "더하기 결과가 20입니다.\n addition results in 20"
         }
         if(valueInput1 == "10"){
             textView1.append("\n 첫번째 입력된 값이 10입니다.\n The first entered value is 10.")
         }


         val input1:Any = "안녕Hello"
         val input2:Any = 10

         if(input1 is String){
             val output2 = input1 as String
             textView2.setText(" $output2 는 문자열 자료형입니다.")
             // 바로위와 같은 결과 : textView1.text = "input1은 문자열 자료형입니다.";
         }

         if(input2 is Int){
             val output3:Int? = input2 as Int
             textView2.append("\n $input2 는 숫자 자료형입니다.")
         }

        }

    }
}

Constants.kt(package variable)

-directory(file location)

-kotlin code

package com.example.app3.constants

val mBonus:Int = 1000

active_main.xml

-xml design

-xml code

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/nameInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="124dp"
        android:ems="10"
        android:hint="이름Name"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/mobileInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:ems="10"
        android:hint="전화번호PhoneNumber"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/nameInput" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="44dp"
        android:text="Show"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mobileInput"
        app:layout_constraintVertical_bias="0.0" />

    <EditText
        android:id="@+id/inputText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:ems="10"
        android:hint="첫번째 값First Value"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.542"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button" />

    <EditText
        android:id="@+id/inputText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="두번째 값Second Value"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.542"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/inputText1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="더하기Plus"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/inputText2" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="결과Result"
        android:textColorLink="#9C27B0"
        android:textSize="16sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button2" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="결과2Result2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
</androidx.constraintlayout.widget.ConstraintLayout>

Leave a Reply

Your email address will not be published. Required fields are marked *