출처: https://3months.tistory.com/307 [Deep Play]

안드로이드/연습

[Android] 테이블레이아웃 계산기

코딩하는 랄뚜기 2021. 8. 18. 12:06
<?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"
    android:padding="10dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/Edit1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_margin="10dp"
        android:textSize="20dp"
        android:backgroundTint="#ffffff"
        android:hint="숫자1"
        >
    </EditText>
    <EditText
        android:id="@+id/Edit2"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginBottom="25dp"
        android:textSize="20dp"
        android:backgroundTint="#ffffff"
        android:hint="숫자2"
        >
    </EditText>
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TableRow>
            <Button
                android:id="@+id/cal_0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="0">
            </Button>
            <Button
                android:id="@+id/cal_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="1">
            </Button>
            <Button
                android:id="@+id/cal_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="2">
            </Button>
            <Button
                android:id="@+id/cal_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="3">
            </Button>
            <Button
                android:id="@+id/cal_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:text="4">
            </Button>
        </TableRow>
        <TableRow>
            <Button
                android:id="@+id/cal_5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="5">
            </Button>
            <Button
                android:id="@+id/cal_6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="6">
            </Button>
            <Button
                android:id="@+id/cal_7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="7">
            </Button>
            <Button
                android:id="@+id/cal_8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:layout_marginRight="10dp"
                android:text="8">
            </Button>
            <Button
                android:id="@+id/cal_9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#50000000"
                android:textColor="@color/black"
                android:layout_weight="1"
                android:text="9">
            </Button>
        </TableRow>
    </TableLayout>
    <Button
        android:id="@+id/button1"
        android:layout_height="60dp"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:backgroundTint="#50000000"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:text="더하기"
        >
    </Button>
    <Button
        android:id="@+id/button2"
        android:layout_height="60dp"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:backgroundTint="#50000000"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:text="빼기"
        >
    </Button>
    <Button
        android:id="@+id/button3"
        android:layout_height="60dp"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:backgroundTint="#50000000"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:text="곱하기"
        >
    </Button>
    <Button
        android:id="@+id/button4"
        android:layout_height="60dp"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="15dp"
        android:backgroundTint="#50000000"
        android:textColor="@color/black"
        android:textSize="20dp"
        android:text="나누기"
        >
    </Button>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:paddingLeft="10dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="40dp"
            android:textColor="#ff0000"
            android:text="계산결과 :">
        </TextView>
        <TextView
            android:id="@+id/ans"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:textSize="40dp"
            android:textColor="#000000"
            android:text="">
        </TextView>
    </LinearLayout>
</LinearLayout>
package com.example.calculatpr;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
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 {
    TextView Edit1,Edit2,ans;
    Button button1,button2,button3,button4;
    String num1,num2;
    Integer result;
    @SuppressLint("ClickableViewAccessibility")
    @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);
        ans=(TextView) findViewById(R.id.ans);
        button1=(Button) findViewById(R.id.button1);
        button2=(Button) findViewById(R.id.button2);
        button3=(Button) findViewById(R.id.button3);
        button4=(Button) findViewById(R.id.button4);
        Button[] numButtons = new Button[10];
        Integer[] numBtnIDs={R.id.cal_0,R.id.cal_1,R.id.cal_2,R.id.cal_3,R.id.cal_4,R.id.cal_5,R.id.cal_6,R.id.cal_7,R.id.cal_8,R.id.cal_9};

        button1.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1=Edit1.getText().toString();
                num2=Edit2.getText().toString();
                result=Integer.parseInt(num1)+Integer.parseInt(num2);
                ans.setText(result.toString());
                return false;
            }
        });
        button2.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1=Edit1.getText().toString();
                num2=Edit2.getText().toString();
                result=Integer.parseInt(num1)-Integer.parseInt(num2);
                ans.setText(result.toString());
                return false;
            }
        });
        button3.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1=Edit1.getText().toString();
                num2=Edit2.getText().toString();
                result=Integer.parseInt(num1)*Integer.parseInt(num2);
                ans.setText(result.toString());
                return false;
            }
        });
        button4.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1=Edit1.getText().toString();
                num2=Edit2.getText().toString();
                result=Integer.parseInt(num1)/Integer.parseInt(num2);
                ans.setText(result.toString());
                return false;
            }
        });
        for( int i=0;i<numBtnIDs.length;i++){
            numButtons[i]=(Button) findViewById(numBtnIDs[i]);
        }
        for(int i=0;i<numBtnIDs.length;i++){
            final int index;
            index=i;
            numButtons[index].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(Edit1.isFocused()==true){
                        num1=Edit1.getText().toString()+numButtons[index].getText().toString();
                        Edit1.setText(num1);
                    }else if(Edit2.isFocused()==true) {
                        num2 = Edit2.getText().toString() + numButtons[index].getText().toString();
                        Edit2.setText(num2);
                    }else{
                        Toast.makeText(getApplicationContext(),"먼저 에디트텍스트를 선택하세요",Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }
}

실행화면

 

 

 

 

'안드로이드 > 연습' 카테고리의 다른 글

[Android] 자동완성텍스트뷰어  (0) 2021.08.18
[Android] 시간예약  (0) 2021.08.18
[Android] xml RelativeLayout 2  (0) 2021.08.11
[Android] RelativeLayout 속성  (0) 2021.08.11
[Android] xml layout_weight  (0) 2021.08.11