안드로이드 스튜디오
- 사칙연산 계산기 -
유튜브에서 안드로이드 스튜디오 강의를 듣다가 사칙연산만을 지원하는 계산기 만들기 실습영상이 있길래
공부한 내용 기록 겸 포스팅해본다.
본 계산기만들기 실습은 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포트에 연결해 직접 빌드를 해보면 계산기 기능이 수행되는 것을 확인할 수 있다.
사실 앱 자체는 매우 간단하겠지만 초보자들에겐 꼭 필요한 내용들이 모두 포함된 실습이였던 것 같다.
( 본 실습은 유튜브 "동빈나"님의 강의를 토대로 만든 실습입니다. )
'안드로이드 스튜디오' 카테고리의 다른 글
#9 웹을 불러오는 웹뷰 (WebView) (0) | 2019.02.13 |
---|---|
#8 데이터값을 저장하는 SharedPreferences (0) | 2019.02.13 |
#7. 내비게이션 메뉴 커스텀 예시 (0) | 2019.02.12 |
#6 내비게이션 메뉴 (Navigation Menu) 의 구성, 틀 (0) | 2019.02.12 |
#5 리스트뷰 (ListView) (0) | 2019.02.12 |