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 |