프로그래밍

[안드로이드 자바] 기본 계산기 본문

안드로이드/안드로이드 스튜디오

[안드로이드 자바] 기본 계산기

시케 2021. 12. 9. 11:30
728x90
반응형

 

 

디자인

 

 

프로젝트 설명

EditText로 숫자를 입력받아 연산 후(덧셈, 뺄셈, 곱셈, 나누기, 나머지) TextView로 결과 출력

 

 

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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

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

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

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/BtnAdd1"
        android:text="덧 셈"
        android:layout_margin="10dp"
        ></Button>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/BtnAdd2"
        android:text="뺄 셈"
        android:layout_margin="10dp"
        ></Button>

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

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

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/BtnAdd5"
        android:text="나 머 지"
        android:layout_margin="10dp"
        ></Button>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ResultText"
        android:text="계산결과 : "
        android:layout_margin="10dp"
        android:textSize="30dp"
        android:textColor="#0000ff"
        ></TextView>


</LinearLayout>

 

 

Mainactivity.java

package com.example.calcfloat;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText edit1, edit2;
    Button btnAdd1;
    Button btnAdd2;
    Button btnAdd3;
    Button btnAdd4;
    Button btnAdd5;
    TextView resultText;
    String num1, num2;
    Integer res;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit1 = (EditText) findViewById(R.id.Edit1);
        edit2 = (EditText) findViewById(R.id.Edit2);
        btnAdd1 = (Button) findViewById(R.id.BtnAdd1);
        btnAdd2 = (Button) findViewById(R.id.BtnAdd2);
        btnAdd3 = (Button) findViewById(R.id.BtnAdd3);
        btnAdd4 = (Button) findViewById(R.id.BtnAdd4);
        btnAdd5 = (Button) findViewById(R.id.BtnAdd5);
        resultText = (TextView) findViewById(R.id.ResultText);

        btnAdd1.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (num1.trim().equals("") || num2.trim().equals("")) {
                    Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();

                } else {
                    res = Integer.parseInt(num1) + Integer.parseInt(num2);
                    resultText.setText("계산결과 : " + res.toString());
                }

                return false;
            }
        });

        btnAdd2.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (num1.trim().equals("") || num2.trim().equals("")) {
                    Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();

                } else {
                    res = Integer.parseInt(num1) - Integer.parseInt(num2);
                    resultText.setText("계산결과 : " + res.toString());
                }

                return false;
            }
        });

        btnAdd3.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (num1.trim().equals("") || num2.trim().equals("")) {
                    Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();

                } else {
                    res = Integer.parseInt(num1) * Integer.parseInt(num2);
                    resultText.setText("계산결과 : " + res.toString());
                }

                return false;
            }
        });

        btnAdd4.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (num1.trim().equals("") || num2.trim().equals("")) {
                    Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();

                } else {
                    if (num2.trim().equals("0")) {
                        Toast.makeText(getApplicationContext(), "0으로 나눌 수 없음", Toast.LENGTH_SHORT).show();

                    } else {
                        res = Integer.parseInt(num1) / Integer.parseInt(num2);
                        resultText.setText("계산결과 : " + res.toString());
                    }
                }

                return false;
            }
        });

        btnAdd5.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (num1.trim().equals("") || num2.trim().equals("")) {
                    Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();

                } else {
                    if (num2.trim().equals("0")) {
                        Toast.makeText(getApplicationContext(), "0으로 나눌 수 없음", Toast.LENGTH_SHORT).show();

                    } else {
                        res = Integer.parseInt(num1) % Integer.parseInt(num2);
                        resultText.setText("계산결과 : " + res.toString());
                    }
                }

                return false;
            }
        });
    }
}
728x90
반응형
Comments