본문 바로가기

안드로이드 스튜디오

실습 - 사칙연산 계산기

안드로이드 스튜디오

- 사칙연산 계산기 -



유튜브에서 안드로이드 스튜디오 강의를 듣다가 사칙연산만을 지원하는 계산기 만들기 실습영상이 있길래

공부한 내용 기록 겸 포스팅해본다.


본 계산기만들기 실습은 Button, EditText, TextView 등 그동안 배웠던 위젯들을 어떻게 써야하는지를

대강 이해할 수 있게 해줄 간단한 실습이라 안드로이드를 배운지 얼마 안된 초보분들에게 도움이 될 것 같았다.



먼저 New Project 생성->activity.main.xml 파일로 들어가서 레이아웃을 RelativeLayout으로 변경해준다. 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

그다음 EditText와 Button, TextView를 차례대로 삽입해볼건데 이번에는 Design탭에서 넣어볼 것이다.

Design탭->Palette에서 Text->Plain Text 2개를 드래그해서 화면에 추가

Plain Text가 사용자에게 텍스트값을 입력받는 EditText이다.

2개를 연속으로 넣으면 대략 이런 모양이 될 것이다.


그 바로 아래에 버튼 4개를 가로방향으로 추가해준다. 그 버튼들에 각각

'더하기', '빼기', '곱하가', '나누기' 텍스트를 입력해줄거다.


마지막으로 그 아래에 TextView도 드래그해서 넣어준다.


그 다음 각각의 위젯들에 아이디값과 세부 설정들을 해 줄건데 각 위젯을 클릭해보면 오른쪽에

Attributes 라고 되어있는 탭이 있을 것이다. 그 탭에서 아이디값 추가 등 설정들을 부여할거다.

먼저 EditText를 입력해서 위에건 아이디값을 et_1, 아래거는 et_2라고 부여해 준 다음

hint 칸에 각각 첫 번째 숫자, 두 번째 숫자라고 입력,

text칸에 입력된 'Name'이라는 기본 텍스트는 지워주도록 한다.


다음으로 각 버튼들에 대한 아이디값을 부여할 것이다.

'더하기' 버튼에는 addButton, '빼기'버튼엔 substractButton, '곱하기'버튼엔 multipleButton, '나누기'버튼엔 divButton

이라고 아이디값을 부여하도록 하자.


그 다음 TextView를 클릭해 result라는 아이디값을 부여하고 크기를 좀 키워볼 것이다.


크기를 키우는 건 textAppearance->AppCompat.Display1, 2 로 키울 수 있다.


자 그럼 모든 위젯들의 세팅을 끝냈으니 MainActivity.java 파일로 들어가 본격적으로 계산기 기능을 부여해보자.


MainActivity 클래스 안, onCreate 매소드 밖에 다음과 같은 메소드들을 생성한다.

public void addClick(View V) {
EditText et_1 = (EditText)findViewById(R.id.et_1);
EditText et_2 = (EditText)findViewById(R.id.et_2);
TextView result = (TextView)findViewById(R.id.result);

// EditText에 입력한 텍스트를 String형태로 변환 후 정수형으로 변환해 변수에 저장
int n1 = Integer.parseInt(et_1.getText().toString());
int n2 = Integer.parseInt(et_2.getText().toString());
result.setText(Integer.toString(n1 + n2));
}

본 메소드는 '더하기'버튼을 누를 때 EditText에 입력된 수들의 합을 TextViw( result )에 출력한다. 는 메소드이다.

먼저 윗줄에 EditText et_1 = ... ; 문장들로 부여해준 위젯들의 아이디를 가져온 후

int n1 = Integer.parseInt ... 이 부분은 EditText에 입력된 텍스트들을 먼저 String으로 변환해 가져온 후

그 String형 데이터를 다시 Integer.parseInt로 정수형으로 변환하여 n1, n2 변수에 각각 저장한다는 의미이다.

그리고 이 변수들에 저장된 값을 이용해 n1 + n2한 값을 Integer.toString으로 String형태로 변환하고

그 String형태의 값을 setText : 다시 텍스트형태로 TextView에 띄우는 메소드가 되겠다.


나머지 빼기, 곱하기, 나누기 기능들도 이와 똑같이 작성해 주면 된다.

public void substractClick(View V) {
EditText et_1 = (EditText)findViewById(R.id.et_1);
EditText et_2 = (EditText)findViewById(R.id.et_2);
TextView result = (TextView)findViewById(R.id.result);

// EditText에 입력한 텍스트를 String형태로 변환 후 정수형으로 변환해 변수에 저장
int n1 = Integer.parseInt(et_1.getText().toString());
int n2 = Integer.parseInt(et_2.getText().toString());
result.setText(Integer.toString(n1 - n2));
}

public void multipleClick(View V) {
EditText et_1 = (EditText)findViewById(R.id.et_1);
EditText et_2 = (EditText)findViewById(R.id.et_2);
TextView result = (TextView)findViewById(R.id.result);

// EditText에 입력한 텍스트를 String형태로 변환 후 정수형으로 변환해 변수에 저장
int n1 = Integer.parseInt(et_1.getText().toString());
int n2 = Integer.parseInt(et_2.getText().toString());
result.setText(Integer.toString(n1 * n2));
}

public void divClick(View V) {
EditText et_1 = (EditText)findViewById(R.id.et_1);
EditText et_2 = (EditText)findViewById(R.id.et_2);
TextView result = (TextView)findViewById(R.id.result);

// EditText에 입력한 텍스트를 String형태로 변환 후 정수형으로 변환해 변수에 저장
int n1 = Integer.parseInt(et_1.getText().toString());
int n2 = Integer.parseInt(et_2.getText().toString());
result.setText(Integer.toString(n1 / n2));
}

그리고 만들어 준 메소드들을 각각 기능들에 해당하는 버튼들에 부여해주면 끝난다.


activity_main.xml 파일-> Text탭에서 각 버튼들에 대해 이와같이 입력해준다.

<Button
android:id="@+id/addButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="100dp"
android:text="더하기"
android:layout_alignParentLeft="true"
android:onClick="addClick" />

android:onClick=" 매소드 명 "

바로 저렇게 부여하는 것이다.

그럼 버튼을 누를 때 저 메소드의 기능을 수행할 수 있게 되는 것이다.

나머지 버튼들에도 메소드를 부여해준다.

<Button
android:id="@+id/substractButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/addButton"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginStart="97dp"
android:layout_marginLeft="97dp"
android:layout_marginTop="1dp"
android:text="빼기"
android:onClick="substractClick" />

<Button
android:id="@+id/multipleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/addButton"
android:layout_marginStart="10dp"
android:layout_marginTop="0dp"
android:layout_toEndOf="@+id/substractButton"
android:text="곱하기"
android:onClick="multipleClick" />

<Button
android:id="@+id/divButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/addButton"
android:layout_marginStart="9dp"
android:layout_marginTop="0dp"
android:layout_toEndOf="@+id/multipleButton"
android:onClick="divClick"
android:text="나누기" />


그리고 안드로이드폰을 USB포트에 연결해 직접 빌드를 해보면 계산기 기능이 수행되는 것을 확인할 수 있다.

사실 앱 자체는 매우 간단하겠지만 초보자들에겐 꼭 필요한 내용들이 모두 포함된 실습이였던 것 같다.





( 본 실습은 유튜브 "동빈나"님의 강의를 토대로 만든 실습입니다. )