타닥타닥 개발자의 일상

코틀린으로Kotlin 증감하는 Counter만들기, setOnClickListener과 증감 연산자 이용 본문

코딩 기록/Kotlin

코틀린으로Kotlin 증감하는 Counter만들기, setOnClickListener과 증감 연산자 이용

NomadHaven 2022. 2. 3. 19:58

숫자를 입력한 다음 + 버튼을 누르면 증가하고 -버튼을 누르면 감소하는,

reset버튼을 누르면 숫자가 0으로 초기화 되는 카운터를 만들것.

 


activity_main.xml 코드화면

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <TextView
            android:id="@+id/counter_num"
            android:layout_height="40dp"
            android:text="0"
            android:gravity="center"
            android:textSize="20sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintHorizontal_bias="0.507"
            android:layout_width="531dp"
            app:layout_constraintBottom_toTopOf="@+id/button3"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.256" android:layout_marginTop="76dp"/>
    <Button
            android:id="@+id/plus_btn"
            android:text="+"
            android:textSize="40sp"
            android:layout_width="181dp"
            android:layout_height="160dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintHorizontal_bias="0.093"
            app:layout_constraintVertical_bias="0.206"/>
    <Button
            android:id="@+id/minus_btn"
            android:text="-"
            android:textSize="50sp"
            android:layout_width="189dp"
            android:layout_height="159dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintHorizontal_bias="0.888"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintVertical_bias="0.206"/>
    <Button
            android:id="@+id/reset_btn"
            android:text="reset"
            android:textSize="20sp"
            android:layout_width="523dp"
            android:layout_height="78dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="0.454"
            app:layout_constraintVertical_bias="0.421"/>

    <EditText
            android:layout_width="363dp"
            android:layout_height="106dp"
            android:inputType="number" //숫자만 입력받으므로 inputType="number"이다.
            android:text="0"
            android:ems="10"
            android:id="@+id/editText"
            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.147"
            app:layout_constraintTop_toTopOf="@+id/button3"
            android:layout_marginTop="105dp" app:layout_constraintVertical_bias="0.0"
            android:layout_marginBottom="308dp"/>
    <Button
            android:id="@+id/set_btn"
            android:text="set"
            android:textSize="20sp"
            android:layout_width="116dp"
            android:layout_height="107dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintHorizontal_bias="0.873"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="@+id/button3"
            android:layout_marginTop="104dp"
            app:layout_constraintVertical_bias="0.0" android:layout_marginBottom="308dp"/>


</androidx.constraintlayout.widget.ConstraintLayout>
activity_main.xml 코드화면

MainActivity.kt
package com.example.counter

import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AlertDialog

class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) //메인화면 초기화

        var counter:Int = 0 // 증감할 숫자의 변수 지정

        val counterNum = findViewById<TextView>(R.id.counter_num) //상단에 있는 결과값을 나타내는 변수
        val plusBtn = findViewById<Button>(R.id.plus_btn) // 수를 + 하는 버튼
        val minusBtn= findViewById<Button>(R.id.minus_btn) //수를 -하는 버튼
        val resetBtn= findViewById<Button>(R.id.reset_btn) //수를 0으로 초기화 하는 버튼

        plusBtn.setOnClickListener { //+버튼을 누를시
            counter++ //숫자는 1증가
            counterNum.text= counter.toString() //상단의 결과 값은 증가된 숫자가 문자로 표시된 것


        }

        minusBtn.setOnClickListener { //-버튼을 누를시
            counter-- //숫자는 1감소
            counterNum.text= counter.toString() //상단의 결과 값은 감소된 숫자가 문자로 표시된 것

        }

        resetBtn.setOnClickListener { //reset버튼을 누를시
            counter = 0 //숫자는 0으로 초기화
            counterNum.text="0" //상단에 있는 결과값은 0
        }

        val editText = findViewById<EditText>(R.id.editText) //숫자 입력하는 공간을 나타내는 변수
        val setBtn = findViewById<Button>(R.id.set_btn) //증감할 숫자를 세팅하는 버튼

        setBtn.setOnClickListener { //세팅 버튼을 누를시
            counterNum.text = editText.text//상단의 숫자는 입력된 텍스트와 동일하다.
            counter = editText.text.toString().toInt() //증감될 숫자는 입력된 텍스트를 정수로 변환한 값과 같다
        }


    }
}

 

생각보다 엄청 간단한데 버튼 세팅하는 것밖에 못했다

복습하니까 더 잘 이해된다

다음엔 다 만들수 있겠지

Comments