본문 바로가기
Programming/안드로이드스튜디오

앱만들기 [ 계산기 ]

by 공부합시다홍아 2020. 4. 17.

안드로이드 스튜디오를 처음 배우는 후배의 과제인데, 가르쳐주면서 만들어봤습니다.

후배가 아직 기초과정이라 수준에 맞게 코드화 해보았습니다. 

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="첫 번째 숫자"
android:textSize="20sp"
android:gravity="center_vertical|left"
android:padding="5dp"
android:layout_margin="10dp"
android:id="@+id/input1"
android:textColor="#666666"/>

</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="두 번째 숫자"
android:textSize="20sp"
android:gravity="center_vertical|left"
android:padding="5dp"
android:layout_margin="10dp"
android:id="@+id/input2"
android:textColor="#666666"/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"/>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="125">

<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="0"
android:textSize="30sp"
android:id="@+id/zero_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="1"
android:textSize="30sp"
android:id="@+id/one_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="2"
android:textSize="30sp"
android:id="@+id/two_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="3"
android:textSize="30sp"
android:id="@+id/three_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="4"
android:textSize="30sp"
android:id="@+id/four_button"
/>
</LinearLayout>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="125">

<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="5"
android:textSize="30sp"
android:id="@+id/five_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="6"
android:textSize="30sp"
android:id="@+id/six_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="7"
android:textSize="30sp"
android:id="@+id/seven_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="8"
android:textSize="30sp"
android:id="@+id/eight_button"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="9"
android:textSize="30sp"
android:id="@+id/nine_button"
/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="1">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
android:text="더하기"
android:textSize="30sp"
android:id="@+id/plus_button"
/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="1">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="빼기"
android:textSize="30sp"
android:id="@+id/minus_button"
/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="1">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="나누기"
android:textSize="30sp"
android:id="@+id/nanugi_button"
/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="1">

<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="25"
android:text="곱하기"
android:textSize="30sp"
android:id="@+id/gob_button"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="결과는"
android:textSize="20sp"
android:gravity="center_vertical|left"
android:padding="5dp"
android:layout_margin="10dp"
android:id="@+id/result_text3"
android:textColor="#666666"
/>



</LinearLayout>

</LinearLayout>

 

-----------------------------------------------------------------------------------------------------------------------------------

MainActivity.java

 

package com.example.ex156;


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;

import androidx.appcompat.app.AppCompatActivity;


public class MainActivity extends AppCompatActivity {

Button plus_button, minus_button, nanugi_button,gob_button;
EditText input1, input2;
TextView result_text3;
String num1, num2;
Integer result;
Button[] numButtons = new Button[10];
Integer[] numBtnIDs = {R.id.zero_button, R.id.one_button, R.id.two_button, R.id.three_button,R.id.four_button,
R.id.five_button,R.id.six_button,R.id.seven_button,R.id.eight_button, R.id.nine_button};
int i;

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

setTitle("계산기");

input1 = (EditText) findViewById(R.id.input1);
input2 = (EditText) findViewById(R.id.input2);
plus_button = (Button) findViewById(R.id.plus_button);
minus_button = (Button) findViewById(R.id.minus_button);
gob_button = (Button) findViewById(R.id.gob_button);
nanugi_button = (Button) findViewById(R.id.nanugi_button);
result_text3 = (TextView) findViewById(R.id.result_text3);

plus_button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1){
num1 = input1.getText().toString();
num2 = input2.getText().toString();
result = Integer.parseInt(num1) + Integer.parseInt(num2);
result_text3.setText("계산 결과 : "+ result.toString());
return false;
}
});
minus_button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1){
num1 = input1.getText().toString();
num2 = input2.getText().toString();
result = Integer.parseInt(num1) - Integer.parseInt(num2);
result_text3.setText("계산 결과 : "+ result.toString());
return false;
}
});

gob_button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1){
num1 = input1.getText().toString();
num2 = input2.getText().toString();
result = Integer.parseInt(num1) * Integer.parseInt(num2);
result_text3.setText("계산 결과 : "+ result.toString());
return false;
}
});

nanugi_button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1){
num1 = input1.getText().toString();
num2 = input2.getText().toString();
result = Integer.parseInt(num1) / Integer.parseInt(num2);
result_text3.setText("계산 결과 : "+ result.toString());
return false;
}
});
for (i = 0; i <numBtnIDs.length; i++) {
numButtons[i] = (Button) findViewById(numBtnIDs[i]);
}
for (i = 0; i <numBtnIDs.length; i++){
final int index; //꼭 필요함
index = i;

numButtons[index].setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
if (input1.isFocused() == true){
num1 = input1.getText().toString()
+ numButtons[index].getText().toString();
input1.setText(num1);
}else if (input2.isFocused() == true){
num2 = input2.getText().toString()
+ numButtons[index].getText().toString();
input2.setText(num2);
}else {
Toast.makeText(getApplicationContext(),"먼저 텍스트를 선택하세요", Toast.LENGTH_SHORT).show();
}
}
});
}
}

}

 

 

728x90