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

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

_빌런 2022. 3. 31. 02:18
<!-- XML Code -->


<?xml version="1.0" encoding="utf-8"?>
<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:rowCount="9"
    android:columnCount="5">

    <EditText
        android:id="@+id/num1txt"
        android:hint="숫자 1 입력"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal">
    </EditText> <!-- num1txt -->
    <EditText
        android:id="@+id/num2txt"
        android:hint="숫자 2 입력"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal">
    </EditText> <!-- num2txt -->

    <Button
        android:id="@+id/btn0"
        android:layout_row="2"
        android:layout_column="0"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="0"
        android:textSize="15sp">
    </Button>   <!-- btn0 -->
    <Button
        android:id="@+id/btn1"
        android:layout_row="2"
        android:layout_column="1"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="1"
        android:textSize="15sp">
    </Button>   <!-- btn1 -->
    <Button
        android:id="@+id/btn2"
        android:layout_row="2"
        android:layout_column="2"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="2"
        android:textSize="15sp">
    </Button>   <!-- btn2 -->
    <Button
        android:id="@+id/btn3"
        android:layout_row="2"
        android:layout_column="3"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="3"
        android:textSize="15sp">
    </Button>   <!-- btn3 -->
    <Button
        android:id="@+id/btn4"
        android:layout_row="2"
        android:layout_column="4"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="4"
        android:textSize="15sp">
    </Button>   <!-- btn4 -->
    <Button
        android:id="@+id/btn5"
        android:layout_row="3"
        android:layout_column="0"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="5"
        android:textSize="15sp">
    </Button>   <!-- btn5 -->
    <Button
        android:id="@+id/btn6"
        android:layout_row="3"
        android:layout_column="1"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="6"
        android:textSize="15sp">
    </Button>   <!-- btn6 -->
    <Button
        android:id="@+id/btn7"
        android:layout_row="3"
        android:layout_column="2"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="7"
        android:textSize="15sp">
    </Button>   <!-- btn7 -->
    <Button
        android:id="@+id/btn8"
        android:layout_row="3"
        android:layout_column="3"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="8"
        android:textSize="15sp">
    </Button>   <!-- btn8 -->
    <Button
        android:id="@+id/btn9"
        android:layout_row="3"
        android:layout_column="4"
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:layout_margin="2dp"
        android:text="9"
        android:textSize="15sp">
    </Button>   <!-- btn9 -->

    <Button
        android:id="@+id/addBtn"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="2dp"
        android:text="더하기"
        android:textSize="15sp">
    </Button>   <!-- addBtn -->
    <Button
        android:id="@+id/subBtn"
        android:layout_row="5"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="2dp"
        android:text="빼기"
        android:textSize="15sp">
    </Button>   <!-- subBtn -->
    <Button
        android:id="@+id/mulBtn"
        android:layout_row="6"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="2dp"
        android:text="곱하기"
        android:textSize="15sp">
    </Button>   <!-- mulBtn -->
    <Button
        android:id="@+id/divBtn"
        android:layout_row="7"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="2dp"
        android:text="나누기"
        android:textSize="15sp">
    </Button>   <!-- divBtn -->

    <TextView
        android:id="@+id/resultTxt"
        android:layout_row="8"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="2dp"
        android:text="계산 결과 : "
        android:textSize="20sp">
    </TextView> <!-- resultTxt -->
</GridLayout>
// JAVA Code


package com.example.example_5_5;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
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 num1txt, num2txt;
    Button addBtn, subBtn, mulBtn, divBtn;
    TextView resultTxt;
    Button[] numButtons = new Button[10];

    String num1, num2;
    Integer result;
    Integer[] btnNum = { R.id.btn0, R.id.btn1, R.id.btn2, R.id.btn3,
            R.id.btn4, R.id.btn5, R.id.btn6, R.id.btn7, R.id.btn8, R.id.btn9};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // setTitle("name");

        num1txt = (EditText) findViewById(R.id.num1txt);
        num2txt = (EditText) findViewById(R.id.num2txt);
        resultTxt = (TextView) findViewById(R.id.resultTxt);

        addBtn = (Button) findViewById(R.id.addBtn);
        subBtn = (Button) findViewById(R.id.subBtn);
        mulBtn = (Button) findViewById(R.id.mulBtn);
        divBtn = (Button) findViewById(R.id.divBtn);

        for (int i=0; i<btnNum.length; i++) {
            numButtons[i] = (Button) findViewById(btnNum[i]);
        }

        addBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = num1txt.getText().toString();
                num2 = num2txt.getText().toString();
                result = Integer.parseInt(num1) + Integer.parseInt(num2);
                resultTxt.setText("계산 결과 : " + result.toString());
            }
        });
        subBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = num1txt.getText().toString();
                num2 = num2txt.getText().toString();
                result = Integer.parseInt(num1) - Integer.parseInt(num2);
                resultTxt.setText("계산 결과 : " + result.toString());
            }
        });
        mulBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = num1txt.getText().toString();
                num2 = num2txt.getText().toString();
                result = Integer.parseInt(num1) * Integer.parseInt(num2);
                resultTxt.setText("계산 결과 : " + result.toString());
            }
        });
        divBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = num1txt.getText().toString();
                num2 = num2txt.getText().toString();
                result = Integer.parseInt(num1) / Integer.parseInt(num2);
                resultTxt.setText("계산 결과 : " + result.toString());
            }
        });

        for (int i=0; i<btnNum.length; i++) {
            final int index;
            index = i;

            numButtons[index].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (num1txt.isFocused() == true) {
                        num1 = num1txt.getText().toString()
                                + numButtons[index].getText().toString();
                        num1txt.setText(num1);
                    }
                    else if (num2txt.isFocused() == true) {
                        num2 = num2txt.getText().toString()
                                + numButtons[index].getText().toString();
                        num2txt.setText(num2);
                    }
                    else {
                        Toast.makeText(getApplicationContext(),
                                "입력할 숫자 위치를 골라주세요", Toast.LENGTH_SHORT).show();;
                    }
                }
            });
        }
    }
}