안녕하세요! 워누입니다. 

오늘은 과제 때문에 만들게 된 간단한 계산기를 포스팅하고자 합니다.

(이클립스 버전은 다음에 포스팅할게요ㅎㅎ)

바로 본론 고고!!

.

일단 디자인을 잡아줍시다.

.

이거에 따른 xml 코드가 이렇습니다.

<activity_main.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:id="@+id/LinerLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.user.calculator.MainActivity">

    <EditText
        android:id="@+id/edit1"
        android:background="#000000"
        android:layout_width="fill_parent"
        android:layout_height="200px"
        android:layout_marginTop="10dp"
        android:textColor="#ffffff"
        android:textSize="35dp"
        android:ems="20"/>

       <requestFocus/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <Button
                android:id="@+id/button1"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="1"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button2"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="2"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button3"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="3"
                android:textSize="20dp" />

            <Button
                android:id="@+id/buttonP"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="+"
                android:textSize="20dp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <Button
                android:id="@+id/button4"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="4"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/button5"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="5"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/button6"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="6"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/buttonX"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="×"
                android:textSize="20dp"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <Button
                android:id="@+id/button7"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="7"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/button8"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="8"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/button9"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="9"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/buttonD"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="÷"
                android:textSize="20dp"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <Button
                android:id="@+id/button0"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="0"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/buttonR"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="="
                android:textSize="20dp"/>

            <Button
                android:id="@+id/buttonC"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="C"
                android:textSize="20dp"/>

            <Button
                android:id="@+id/buttonM"
                android:layout_width="170px"
                android:layout_height="170px"
                android:text="-"
                android:textSize="20dp"/>
        </LinearLayout>


    </LinearLayout>
</LinearLayout>
---------------------------------------------------------------------------------------------

버튼 모양, 레이아웃을 잡아 주었다면 이제 동작을 구현해야겠죠? 자바 코드는 이렇게 작성하였습니다.

.

<MainActivity.java>

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

package com.example.user.calculator;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button button1, button2, button3, buttonP, button4, button5, button6, buttonX, button7, button8, button9, buttonD, button0, buttonR, buttonC, buttonM;


private EditText edit;
private int a;
private int where=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(getApplicationContext(),"Calculator",Toast.LENGTH_SHORT).show();

button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button3=(Button)findViewById(R.id.button3);
buttonP=(Button)findViewById(R.id.buttonP);
button4=(Button)findViewById(R.id.button4);
button5=(Button)findViewById(R.id.button5);
button6=(Button)findViewById(R.id.button6);
buttonX=(Button)findViewById(R.id.buttonX);
button7=(Button)findViewById(R.id.button7);
button8=(Button)findViewById(R.id.button8);
button9=(Button)findViewById(R.id.button9);
buttonD=(Button)findViewById(R.id.buttonD);
button0=(Button)findViewById(R.id.button0);
buttonR=(Button)findViewById(R.id.buttonR);
buttonC=(Button)findViewById(R.id.buttonC);
buttonM=(Button)findViewById(R.id.buttonM);

edit=(EditText)findViewById(R.id.edit1);

View.OnClickListener cl = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v==button1){
edit.setText(edit.getText().toString()+1);
}
else if(v==button2){
edit.setText(edit.getText().toString()+2);
}
else if(v==button3){
edit.setText(edit.getText().toString()+3);
}
else if(v==buttonP){
a=Integer.valueOf(edit.getText().toString().trim());
edit.setText("");
where=1;
}
else if(v==button4){
edit.setText(edit.getText().toString()+4);
}
else if(v==button5){
edit.setText(edit.getText().toString()+5);
}
else if(v==button6){
edit.setText(edit.getText().toString()+6);
}
else if(v==buttonX){
a=Integer.valueOf(edit.getText().toString().trim());
edit.setText("");
where=2;
}
else if(v==button7){
edit.setText(edit.getText().toString()+7);
}
else if(v==button8){
edit.setText(edit.getText().toString()+8);
}
else if(v==button9){
edit.setText(edit.getText().toString()+9);
}
else if(v==buttonD){
a=Integer.valueOf(edit.getText().toString().trim());
edit.setText("");
where=3;
}
else if(v==button0){
edit.setText(edit.getText().toString()+0);
}
else if(v==buttonR) {
if (where == 1) {
a = a + Integer.valueOf(edit.getText().toString().trim());
edit.setText(Integer.toString(a));
}
else if(where==2){
a = a * Integer.valueOf(edit.getText().toString().trim());
edit.setText(Integer.toString(a));
}
else if(where==3){
a = a / Integer.valueOf(edit.getText().toString().trim());
edit.setText(Integer.toString(a));
}
else if(where==4){
a = a - Integer.valueOf(edit.getText().toString().trim());
edit.setText(Integer.toString(a));
}
}
else if(v==buttonC){
edit.setText("");
}
else if(v==buttonM){
a=Integer.valueOf(edit.getText().toString().trim());
edit.setText("");
where=4;
}
}

};
button1.setOnClickListener(cl);
button2.setOnClickListener(cl);
button3.setOnClickListener(cl);
buttonP.setOnClickListener(cl);
button4.setOnClickListener(cl);
button5.setOnClickListener(cl);
button6.setOnClickListener(cl);
buttonX.setOnClickListener(cl);
button7.setOnClickListener(cl);
button8.setOnClickListener(cl);
button9.setOnClickListener(cl);
buttonD.setOnClickListener(cl);
button0.setOnClickListener(cl);
buttonR.setOnClickListener(cl);
buttonC.setOnClickListener(cl);
buttonM.setOnClickListener(cl);
}
}

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

 

코드를 이렇게 작성한 다음, 앱으로 추출해보니...

.

오오! 스스로 만든 간단한 계산기가 완성이 되었습니다! 

저는 이런식으로 간단하게 만들어서 보완해야 할 부분들이 좀 많아요..ㅎ 

조금더 익숙해지면 더 좋게 만들겠죠..?

그 날까지 공부 빠샤!! 그럼 20000~

 

'Java 공부하기 > Android' 카테고리의 다른 글

Mac에서 Android Studio 설치하기  (0) 2021.09.16

+ Recent posts