간단한 계산기 앱 구현하기: 안드로이드 스튜디오에서 자바 활용하기



간단한 계산기 앱 구현하기: 안드로이드 스튜디오에서 자바 활용하기

안드로이드 스튜디오를 활용하여 간단한 계산기 앱을 만들 수 있는 방법을 알아보겠습니다. 이 과정에서는 자바를 사용하여 기본적인 계산 기능을 구현하고, 사용자 인터페이스를 구성하는 방법을 설명합니다. 이러한 앱은 안드로이드를 배우는 데 있어 매우 유용한 프로젝트입니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

앱 디자인 및 XML 레이아웃 설정

레이아웃 구성 요소 소개

앱의 사용자 인터페이스는 XML 파일에서 정의됩니다. 여러 가지 레이아웃 방식이 있지만, 이번에는 TableLayout을 사용하여 계산기 버튼을 배치합니다. 이 레이아웃은 버튼을 행(row)으로 나누어 배열할 수 있도록 해줍니다. 아래는 기본적인 레이아웃 XML 코드입니다.



“`xml

<tableRow>
    <EditText
        android:id="@+id/et_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="숫자를 입력하세요." />
</TableRow>

<!-- 버튼 행 설정 -->
<tableRow>
    <Button android:id="@+id/num_1" android:text="1" />
    <Button android:id="@+id/num_2" android:text="2" />
    <Button android:id="@+id/num_3" android:text="3" />
    <Button android:id="@+id/btn_plus" android:text="+" />
</TableRow>

<tableRow>
    <Button android:id="@+id/num_4" android:text="4" />
    <Button android:id="@+id/num_5" android:text="5" />
    <Button android:id="@+id/num_6" android:text="6" />
    <Button android:id="@+id/btn_minus" android:text="-" />
</TableRow>

<tableRow>
    <Button android:id="@+id/num_7" android:text="7" />
    <Button android:id="@+id/num_8" android:text="8" />
    <Button android:id="@+id/num_9" android:text="9" />
    <Button android:id="@+id/btn_multiple" android:text="*" />
</TableRow>

<tableRow>
    <Button android:id="@+id/num_0" android:text="0" />
    <Button android:id="@+id/btn_clear" android:text="C" />
    <Button android:id="@+id/btn_slush" android:text="/" />
    <Button android:id="@+id/btn_result" android:text="=" />
</TableRow>


“`

이 레이아웃에서는 EditText를 사용하여 사용자 입력을 받고, 여러 개의 Button을 사용하여 숫자와 연산자를 표시합니다. 각 버튼은 클릭 시 해당 숫자나 연산자를 입력창에 추가하거나 계산을 수행하게 됩니다.

레이아웃 설명

TableLayout을 사용하면 각 버튼을 행으로 나누어 배치할 수 있어, 계산기 인터페이스를 직관적으로 구성할 수 있습니다. 각 버튼은 고유한 ID를 가지고 있으며, 필요에 따라 속성을 조정할 수 있습니다. 예를 들어, stretchColumns 속성을 사용하여 열의 크기를 균일하게 조정할 수 있습니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

앱 로직 구현

Java 코드 설정

앱의 기능을 구현하기 위해 Java 클래스를 작성합니다. 아래는 기본적인 계산기 로직을 포함한 Java 코드입니다.

“`java
package com.mary.countingapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
private EditText ptResult;
private Button btn[] = new Button[16];

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

    init();
    initListener();
}

private void init() {
    btn[0] = findViewById(R.id.num_0);
    btn[1] = findViewById(R.id.num_1);
    btn[2] = findViewById(R.id.num_2);
    btn[3] = findViewById(R.id.num_3);
    btn[4] = findViewById(R.id.num_4);
    btn[5] = findViewById(R.id.num_5);
    btn[6] = findViewById(R.id.num_6);
    btn[7] = findViewById(R.id.num_7);
    btn[8] = findViewById(R.id.num_8);
    btn[9] = findViewById(R.id.num_9);
    btn[10] = findViewById(R.id.btn_plus);
    btn[11] = findViewById(R.id.btn_minus);
    btn[12] = findViewById(R.id.btn_multiple);
    btn[13] = findViewById(R.id.btn_slush);
    btn[14] = findViewById(R.id.btn_clear);
    btn[15] = findViewById(R.id.btn_result);
    ptResult = findViewById(R.id.et_result);
}

private void initListener() {
    for (int i = 0; i < 14; i++) {
        btn[i].setOnClickListener((View view) -> {
            Button button = (Button) view;
            ptResult.append(button.getText().toString());
        });
    }
    btn[14].setOnClickListener((View view) -> ptResult.setText(""));
    btn[15].setOnClickListener((View view) -> {
        String result = ptResult.getText().toString();
        ptResult.setText(Eval.cal(result));
    });
}

}
“`

이 코드는 버튼 클릭 이벤트를 처리하여 사용자가 숫자와 연산자를 입력할 수 있게 합니다. 또한, 입력된 수식을 계산하고 결과를 보여주는 기능도 포함되어 있습니다.

스크립트 엔진 설정

계산 기능을 구현하기 위해 JavaScript 엔진을 활용합니다. 아래는 JavaScript를 사용하여 입력된 수식을 평가하는 클래스를 정의한 예입니다.

“`java
package com.mary.countingapp;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Eval {
public static String cal(String result) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(“js”);
try {
return engine.eval(result).toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
“`

이 클래스는 스크립트 엔진을 사용하여 입력된 수식을 평가하고, 결과를 반환합니다. 이를 통해 계산기를 완성합니다.

최종 정리

안드로이드 스튜디오를 활용하여 자바로 간단한 계산기 앱을 만들 수 있는 방법을 살펴보았습니다. XML 레이아웃을 통해 사용자 인터페이스를 구성하고, Java 코드를 통해 기능을 구현하는 과정을 통해 안드로이드 앱 개발의 기초를 익힐 수 있습니다. 이러한 프로젝트는 실용적인 앱 개발 경험을 쌓는 데 도움이 됩니다.