학교 공부/안드로이드 프로그래밍_코드

안드로이드 프로그래밍_직접 풀어보기 4-3 코드

_빌런 2022. 3. 23. 18:00
<!-- 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/Edit1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dp"
        android:layout_marginTop="15dp"
        android:ems="10"
        android:hint="숫자1 (실수 가능)"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/Edit2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="숫자2 (실수 가능)"
        app:layout_constraintStart_toStartOf="@+id/Edit1"
        app:layout_constraintTop_toBottomOf="@+id/Edit1" />

    <Button
        android:id="@+id/button5"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="14dp"
        android:layout_marginTop="15dp"
        android:layout_marginEnd="14dp"
        android:backgroundTint="#999999"
        android:text="더하기"
        android:textColor="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/Edit2" />

    <Button
        android:id="@+id/button6"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="14dp"
        android:layout_marginTop="14dp"
        android:layout_marginEnd="14dp"
        android:backgroundTint="#999999"
        android:text="빼기"
        android:textColor="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button5" />

    <Button
        android:id="@+id/button7"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="14dp"
        android:layout_marginTop="15dp"
        android:layout_marginEnd="14dp"
        android:backgroundTint="#999999"
        android:text="곱하기"
        android:textColor="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button6" />

    <Button
        android:id="@+id/button8"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="14dp"
        android:layout_marginTop="14dp"
        android:layout_marginEnd="14dp"
        android:backgroundTint="#999999"
        android:text="나누기"
        android:textColor="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button7" />

    <TextView
        android:id="@+id/TextResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:text="결괏값"
        android:textColor="#FF0000"
        android:textSize="30sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button9" />

    <Button
        android:id="@+id/button9"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:backgroundTint="#999999"
        android:text="나머지"
        android:textColor="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button8" />
</androidx.constraintlayout.widget.ConstraintLayout>
// JAVA Code


package com.example.example_4_1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.TextUtils;
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 btnAdd, btnSub, btnMul, btnDiv, btnRem;
    TextView textResult;
    String num1, num2;
    Float result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("이런 게 계산기라니");

        edit1 = (EditText) findViewById(R.id.Edit1);
        edit2 = (EditText) findViewById(R.id.Edit2);

        btnAdd = (Button) findViewById(R.id.button5);
        btnSub = (Button) findViewById(R.id.button6);
        btnMul = (Button) findViewById(R.id.button7);
        btnDiv = (Button) findViewById(R.id.button8);
        btnRem = (Button) findViewById(R.id.button9);

        textResult = (TextView) findViewById(R.id.TextResult);

        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num1)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }

                result = Float.parseFloat(num1) + Float.parseFloat(num2);
                textResult.setText("결과 : " + result.toString());
            }
        });

        btnSub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num1)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }

                result = Float.parseFloat(num1) - Float.parseFloat(num2);
                textResult.setText("결과 : " + result.toString());
            }
        });

        btnMul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num1)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }

                result = Float.parseFloat(num1) * Float.parseFloat(num2);
                textResult.setText("결과 : " + result.toString());
            }
        });

        btnDiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num1)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }
                else if (TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }

                if (num2.equals("0")) {
                    // if (num2 == "0")은 문자열 비교에서 사용할 수 없다.
                    Toast.makeText(getApplicationContext(),"0으로 나눌 수 없습니다.", Toast.LENGTH_SHORT).show();
                    textResult.setText("연산 불가능");
                }
                else {
                    result = Float.parseFloat(num1) / Float.parseFloat(num2);
                    textResult.setText("결과 : " + result.toString());
                }
            }
        });

        btnRem.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(), "입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                } else if (TextUtils.isEmpty(num1)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(), "1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                } else if (TextUtils.isEmpty(num2)) {
                    // if (num1.length()==0)
                    Toast.makeText(getApplicationContext(), "2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
                    return;
                }

                if (num2.equals("0")) {
                    // if (num2 == "0")은 문자열 비교에서 사용할 수 없다.
                    Toast.makeText(getApplicationContext(), "0으로 나눌 수 없습니다.", Toast.LENGTH_SHORT).show();
                    textResult.setText("연산 불가능");
                } else {
                    result = Float.parseFloat(num1) % Float.parseFloat(num2);
                    textResult.setText("결과 : " + result.toString());
                }
            }
        });

    }
}