dalgorithm
달공의 개발기
dalgorithm
전체 방문자
오늘
어제
  • 분류 전체보기 (170)
    • Back-end (0)
    • Java (11)
    • 자료구조 (7)
    • Network (31)
    • Database (9)
    • Baekjoon Online (24)
    • 클라우드 (6)
    • Android (15)
      • Kotlin (14)
    • AI (27)
      • Machine Learning&Deep Learn.. (27)
    • Web (23)
      • Webhacking (17)
      • WebProgramming (6)
    • 기술면접 (1)
      • JAVA&자료구조 (0)
      • Spring (0)
      • 컴퓨터구조&운영체제 (0)
      • 네트워크 (0)
      • 데이터베이스 (0)
    • CTF 스터디 (15)
    • 대외활동 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 인공지능
  • gcp
  • kotlin
  • python #백준
  • 포너블
  • 데이터베이스
  • java
  • 웹해킹
  • 자바
  • db
  • 자료구조
  • CTF
  • cs
  • 코드리뷰
  • 딥러닝
  • Guacamole
  • 네트워크
  • 머신러닝
  • 침입탐지
  • 클라우드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dalgorithm

달공의 개발기

Kotlin 간단 계산기 앱 만들기
Android/Kotlin

Kotlin 간단 계산기 앱 만들기

2021. 1. 13. 14:29
728x90

 

✔ 계산기 기능

- 위젯 중 EditText, Text, Button을 이용하여 만든다.

- 두 수를 입력하고 해당 연산 버튼을 누르면 계산 결과를 출력하는 계산기

 

✔ 소스코드

◾ activity_main.xml 

- 전체적인 레이아웃을 구성하는 코드이다.

- LinearLayout을 사용하고, 에디트텍스트 3개, 버튼 4개를 생성한다.

- 결과를 보여줄 위젯은 빨간색으로 지정하고 글자 크기를 30sp로 해준다.

- 각 위젯의 id는 기능에 맞게 지정한다.

 

<?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"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/Edit1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="숫자1"/>

    <EditText
        android:id="@+id/Edit2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="숫자2"/>

    <Button
        android:id="@+id/BtnAdd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="더하기"/>

    <Button
        android:id="@+id/BtnSub"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="빼기"/>

    <Button
        android:id="@+id/BtnMul"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="곱하기"/>

    <Button
        android:id="@+id/BtnDiv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="나누기"/>

    <EditText
        android:id="@+id/TextResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:layout_margin="10dp"
        android:textColor="#FF0000"
        android:text="계산결과 : "/>
</LinearLayout>

 

◾ MainActivity.kt

- 위의 xml 코드에서 7개의 위젯에 대응하는 변수 7개를 선언한다.

- 피연산자로 쓰일 숫자를 저장하는 문자열 변수 2개를 생성한다.

- 계산 결과를 저장할 정수 변수 1개 또한 생성한다.

- 위 변수들이 파일 내의 모든 클래스에서 사용되도록 전역변수로 선언해준다.

- setOnTouchListener{}, parseInt(), toString()에 집중하자.

 

package com.example.simplecalapp

import android.os.Bundle
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.annotation.IntegerRes

class MainActivity : AppCompatActivity() {

    lateinit var edit1 : EditText //전역변수 사용
    lateinit var edit2 : EditText
    lateinit var btnAdd : Button
    lateinit var btnSub : Button
    lateinit var btnMul : Button
    lateinit var btnDiv : Button
    lateinit var textResult: TextView
    lateinit var num1 : String
    lateinit var num2 : String
    var result : Int? = null //null 이용시 ? 필요함.

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setTitle("초간단  계산기")

        edit1=findViewById<EditText>(R.id.Edit1)
        edit2=findViewById<EditText>(R.id.Edit2)
        btnAdd=findViewById<Button>(R.id.BtnAdd)
        btnSub=findViewById<Button>(R.id.BtnSub)
        btnMul=findViewById<Button>(R.id.BtnMul)
        btnDiv=findViewById<Button>(R.id.BtnDiv)
        textResult=findViewById<EditText>(R.id.TextResult)


        btnAdd.setOnTouchListener { view, motionEvent ->
            num1=edit1.text.toString()
            num2=edit2.text.toString()
            result=Integer.parseInt(num1)+Integer.parseInt(num2)
            textResult.text="계산 결과 : "+result.toString()
            false
        }

        btnSub.setOnTouchListener { view, motionEvent ->
            num1=edit1.text.toString()
            num2=edit2.text.toString()
            result=Integer.parseInt(num1)-Integer.parseInt(num2)
            textResult.text="계산 결과 : "+result.toString()
            false
        }

        btnMul.setOnTouchListener { view, motionEvent ->
            num1=edit1.text.toString()
            num2=edit2.text.toString()
            result=Integer.parseInt(num1)*Integer.parseInt(num2)
            textResult.text="계산 결과 : "+result.toString()
            false
        }

        btnDiv.setOnTouchListener { view, motionEvent ->
            num1=edit1.text.toString()
            num2=edit2.text.toString()
            result=Integer.parseInt(num1)/Integer.parseInt(num2)
            textResult.text="계산 결과 : "+result.toString()
            false
        }
    }
}

 

✔결과 화면

728x90

'Android > Kotlin' 카테고리의 다른 글

Kotlin 타이머 만들기  (0) 2021.01.18
Kotlin BMI(비만도) 계산기 앱 만들기  (0) 2021.01.18
Kotlin 뷰와 레이아웃  (2) 2021.01.08
Kotlin 기본 문법_조건문, 배열, 함수  (0) 2021.01.05
Kotlin 기본 문법_변수와 데이터 형식  (0) 2021.01.05
    'Android/Kotlin' 카테고리의 다른 글
    • Kotlin 타이머 만들기
    • Kotlin BMI(비만도) 계산기 앱 만들기
    • Kotlin 뷰와 레이아웃
    • Kotlin 기본 문법_조건문, 배열, 함수
    dalgorithm
    dalgorithm

    티스토리툴바