티스토리 뷰

평수 계산기

동작개요

EditText 뷰에 제곱미터 값 입력 후 버튼 클릭 시, EditText 뷰에 입력된 제곱미터 값에 대응하는 평수를 텍스트 뷰에 표시

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    android:orientation="vertical"
    android:gravity="center_horizontal">
    
    <EditText
        android:id="@+id/et"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:hint="제곱미터 값 입력"
        android:textSize="30sp" />
    
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:text="평수 계산"
        android:textSize="30dp" />
        
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:textSize="30sp" />

</LinearLayout>

 

MainActivity.java

  • String s = e.getText(); ▶ 오류(EditText의getText()의 반환자료형 주의)
  • String s = e.getText()+""; ▶문자열로 바꿔줬기 떄문에 가능
package com.example.test;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        EditText e = findViewById(R.id.et);
        Button b = findViewById(R.id.btn);
        TextView t = findViewById(R.id.tv);
        
        b.setOnClickListener(v -> {
            String s = e.getText()+"";
            if(s.length() <= 0) return;
            t.setText(Double.parseDouble(s)*0.3025+" (평)");
        });
    }
}

평수 계산기 실행


덧셈 · 뺄셈 계산기

동작개요

EditText 뷰에 제곱미터 값 입력 후 덧셈 또는 뺄 버튼 클릭 시, 두 EditText 뷰에 입력된 값들의 덧셈 또는 뺄셈한 결과 값을 텍스트 뷰에 표시

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:hint="첫 번째 수 입력"
        android:textSize="30sp" />
    <EditText
        android:id="@+id/et2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:hint="두 번째 수 입력"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal" >

        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:gravity="center"
            android:text="덧셈"
            android:textSize="30dp" />
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:gravity="center"
            android:text="뺄셈"
            android:textSize="30dp" />

    </LinearLayout>

    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:gravity="center"
        android:textSize="30sp" />

</LinearLayout>

 

Calc.java

  • sum 메서드와 sub 메서드를 static으로 표현
  • static한 메서드는 인스턴스를 생성하지 않고 호출할 수 있음
package com.example.test;

public class Calc {
    public static int sum(int x, int y) {
        return x+y;
    }

    public static int sub(int x, int y) {
        return x-y;
    }
}

 

MainActivity.java

package com.example.test;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    EditText e1;
    EditText e2;
    Button b1;
    Button b2;
    TextView t;

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

        e1 = findViewById(R.id.et1);
        e2 = findViewById(R.id.et2);
        b1 = findViewById(R.id.btn1);
        b2 = findViewById(R.id.btn2);
        t = findViewById(R.id.tv);

        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
    }

    public void onClick(View v){
        int x = Integer.parseInt(e1.getText()+"");
        int y = Integer.parseInt(e2.getText()+"");

        if(v==b1) t.setText(Calc.sum(x,y)+"");
        if(v==b2) t.setText(Calc.sub(x,y)+"");
    }
}

덧셈 · 뺄셈 계산기 실행


덧셈 · 뺄셈 계산기: 익명클래스 람다식으로 표현

MainActivity.java

package com.example.test;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText e1 = findViewById(R.id.et1);
        EditText e2 = findViewById(R.id.et2);
        Button b1 = findViewById(R.id.btn1);
        Button b2 = findViewById(R.id.btn2);
        TextView t = findViewById(R.id.tv);

        b1.setOnClickListener(v -> {
            int x = Integer.parseInt(e1.getText()+"");
            int y = Integer.parseInt(e2.getText()+"");

            t.setText(Calc.sum(x,y)+"");
        });

        b2.setOnClickListener(v -> {
            int x = Integer.parseInt(e1.getText()+"");
            int y = Integer.parseInt(e2.getText()+"");

            t.setText(Calc.sub(x,y)+"");
        });
    }
}

 

결과는 위와 같음

공지사항
링크