-
안드로이드 스튜디오로 계산기 어플 만들기SW개발/안드로이드 스튜디오 2019. 1. 10. 13:38
안드로이드 스튜디오로 계산기 어플 만들기
본 게시물은 하단 링크의 안드로이드 스튜디오 강좌 2강을 따라한 내용입니다.
https://www.youtube.com/watch?v=dk_AyDJL61g&t=138s
안드로이드 스튜디오에서 새 프로젝트를 열어서 res > layout > activity_main.xml 파일을 열어줍니다.
기본으로 들어있는 Hello World 글자는 선택해서 지워줍니다. 그리고 먼저 Text > Plain Text를 마우스로 끌어서 다음과 같이 화면에 넣어줍니다.
이 Plain Text는 첫번째 숫자를 입력할 칸입니다. 두 번째 숫자를 입력할 칸 또한 아래에 하나 더 Plain Text를 이용해 만들어 줍니다. 그래서 총, Plain Text 2개, Button 4개, TextView 1개를 마우스로 끌어서 만들어 주면 다음과 같습니다.
그리고 각 요소를 클릭해서 우측에서 내용을 변경해줍니다. Plain Text의 ID를 number1, hint는 첫번째 숫자, text는 빈칸으로 만들어줍니다.
Button의 ID 를 addButton으로 작성하고, text에는 더하기라고 작성해줍니다. 나머지 버튼도 다음과 같이 써줍니다.
ID: addButton
text: 더하기
ID: subtractButton
text: 빼기
ID: multiplyButton
text: 곱하기
ID: divideButton
text: 나누기
TextView에는 ID를 result라고 적어주고, text는 지워줍니다. 그리고 textAppearance 옆에 App.Compat.Display1 을 선택해주면
글자가 커집니다.
각 버튼에서 할 작업을 이제 MainActivity 코드에서 함수로 구현해주면 됩니다.
먼저, import 부분을 작성합니다.
그리고 필요한 함수들 ex) addClick(View v) 등도 하단에 작성해줍니다.
전체 코드 내용은 다음과 같습니다.
package comby1994.httpsgithub.my_application_1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void addClick(View v){
EditText number1 = (EditText) findViewById(R.id.number1);
EditText number2 = (EditText) findViewById(R.id.number2);
TextView result = (TextView) findViewById(R.id.result);
int n1 = Integer.parseInt(number1.getText().toString());
int n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 + n2));
}
public void subtractClick(View v){
EditText number1 = (EditText) findViewById(R.id.number1);
EditText number2 = (EditText) findViewById(R.id.number2);
TextView result = (TextView) findViewById(R.id.result);
int n1 = Integer.parseInt(number1.getText().toString());
int n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 - n2));
}
public void multiplyClick(View v){
EditText number1 = (EditText) findViewById(R.id.number1);
EditText number2 = (EditText) findViewById(R.id.number2);
TextView result = (TextView) findViewById(R.id.result);
int n1 = Integer.parseInt(number1.getText().toString());
int n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 * n2));
}
public void divideClick(View v){
EditText number1 = (EditText) findViewById(R.id.number1);
EditText number2 = (EditText) findViewById(R.id.number2);
TextView result = (TextView) findViewById(R.id.result);
int n1 = Integer.parseInt(number1.getText().toString());
int n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 / n2));
}
}원래 어플의 레이아웃이 보인 곳에서 하단에 보이는 Text 탭이나 마우스 오른쪽 버튼을 화면에 누르고 Go to xml을 클릭하면 xml 편집 화면으로 넘어갈 수 있습니다.
xml에서 <Button>들마다 android:onClick="addClick" 이런 식으로 아까 만든 함수 이름을 작성해줍니다. 전체 xml 코드는 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:layout_editor_absoluteY="81dp">
<EditText
android:id="@+id/number1"
android:layout_width="wrap_content"
android:layout_height="58dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="46dp"
android:layout_marginBottom="56dp"
android:ems="10"
android:hint="첫 번째 숫자"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="@+id/number2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="114dp"
android:ems="10"
android:hint="두 번째 숫자"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="69dp"
android:layout_marginLeft="69dp"
android:layout_marginBottom="128dp"
android:text="Name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="parent" />
<Button
android:id="@+id/addButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp"
android:layout_marginRight="15dp"
android:onClick="addClick"
android:text="더하기"
app:layout_constraintBaseline_toBaselineOf="@+id/subtractButton"
app:layout_constraintEnd_toStartOf="@+id/subtractButton" />
<Button
android:id="@+id/subtractButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="22dp"
android:onClick="subtractClick"
android:text="빼기"
app:layout_constraintBottom_toTopOf="@+id/multiplyButton"
app:layout_constraintStart_toStartOf="@+id/divideButton" />
<Button
android:id="@+id/multiplyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="39dp"
android:onClick="multiplyClick"
android:text="곱하기"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/divideButton" />
<Button
android:id="@+id/divideButton"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="12dp"
android:onClick="divideClick"
android:text="나누기"
app:layout_constraintBottom_toBottomOf="@+id/multiplyButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/subtractButton" />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginLeft="25dp"
android:layout_marginTop="50dp"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/number2" />
</android.support.constraint.ConstraintLayout>혹시 다음과 같은 에러메세지가 뜨고 컴파일이 되지 않는다면 (컴파일 되지 않는 가장 큰 원인은 오타이기 때문에 오타를 먼저 확인해야 합니다 ㅠㅠ!!) Missing Constraints in ConstrainLayout 위에 표시한 버튼 (Infer Constraints) 을 클릭합니다!
run을 돌려서 동작을 확인해봅니다!
끝!
오류 메세지 해결 방법
https://stackoverflow.com/questions/47778506/getting-error-missing-constraints-in-constraintlayout
'SW개발 > 안드로이드 스튜디오' 카테고리의 다른 글
Flutter Error Shooting 모음 (0) 2023.09.24 달콤 계란 타이머 개인정보 처리방침 (0) 2019.02.28 안드로이드 스튜디오 종료 버튼 만들기 (0) 2019.01.21 안드로이드 스튜디오 시작하기 (0) 2019.01.08 안드로이드 스튜디오 설치하기 (0) 2019.01.08 댓글