※ 전체 코드는 게시물 제일 하단에 있습니다.
이전 포스팅에서는 노란 계열의 간단한 계산기를 디자인해보았다.
이 계산기는 먼저 EditText에 2개의 number를 받고, 마지막에 사칙연산 버튼을 누르면
계산된 값이 아래 결과값 EditText에 나오는 구조이다.
이번 포스팅에서는 이제 계산기의 제 역할을 하기 위해서
실수 형태의 2가지 숫자가 들어왔을때
- btn_plus (더하기)
- btn_minus (빼기)
- btn_multiply (곱하기)
- btn_slash (나누기)
- btn_percent (나머지 구하기)
를 하는 MainActivity.java 코드를 짜보겠다.
아래 사진에 있는 목록들을 구현할 예정이다.
1. 숫자 버튼과 . 버튼에 접근하기
먼저 숫자 버튼과 . 버튼으로 실수 형태가 만들어지기때문에, 이 버튼들을 눌렀을때 이벤트를 생각해야한다.
우선 처음 생각한 방법은, 변수를 선언하고 onCreate 안에서 findViewById로 Id를 할당받은후
각각의 버튼마다 setOnClickListener를 해 줄 생각이었다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// EditText 초기화
et_1 = findViewById(R.id.et_1);
et_2 = findViewById(R.id.et_2);
et_result = findViewById(R.id.et_result);
// 버튼 초기화
btn_1 = findViewById(R.id.btn_1);
btn_2 = findViewById(R.id.btn_2);
btn_3 = findViewById(R.id.btn_3);
btn_4 = findViewById(R.id.btn_4);
btn_5 = findViewById(R.id.btn_5);
btn_6 = findViewById(R.id.btn_6);
btn_7 = findViewById(R.id.btn_7);
btn_8 = findViewById(R.id.btn_8);
btn_9 = findViewById(R.id.btn_9);
btn_0 = findViewById(R.id.btn_0);
btn_dot = findViewById(R.id.btn_dot);
btn_percent = findViewById(R.id.btn_percent);
btn_plus = findViewById(R.id.btn_plus);
btn_minus = findViewById(R.id.btn_minus);
btn_multiply = findViewById(R.id.btn_multiply);
btn_slash = findViewById(R.id.btn_slash);
btn_reset = findViewById(R.id.btn_reset);
btn_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String num = btn_1.getText().toString();
String currentText = et_1.getText().toString();
et_1.setText(currentText+num);
}
});
btn_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String num = btn_2.getText().toString();
String currentText = et_1.getText().toString();
et_1.setText(currentText+num);
}
});
}
예를 들면 이런식으로!!
근데 하다보니 뭔가 좀 더 간단하게 구현할 수 있을 것 같은데... 하는 생각이 들었고 그 결과
private void setButtonClickListener(final Button button) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 버튼의 텍스트를 가져와서 EditText에 추가
String num = button.getText().toString();
if (focusedEditText != null) { //만약 focusedEditText가 null이 아니면
String currentText = focusedEditText.getText().toString();
focusedEditText.setText(currentText + num); //원래 있는 text+눌러진 숫자 테스트 추가
}
}
});
메소드 정의: setButtonClickListener(final Button button)는 매개변수로 전달된 Button 객체에 클릭 리스너를 설정하는 메소드입니다.
클릭 리스너 설정: button.setOnClickListener(new View.OnClickListener() {...});는 해당 버튼에 클릭 리스너를 설정합니다. 이 리스너는 사용자가 버튼을 클릭했을 때 실행될 코드를 정의합니다.
클릭 시 실행될 코드: public void onClick(View view)는 버튼이 클릭되었을 때 호출되는 메소드입니다.
String num = button.getText().toString();는 버튼에 표시된 텍스트를 가져와 문자열로 변환하여 num이라는 변수에 저장합니다. 이 텍스트는 일반적으로 숫자 버튼일 경우 그 숫자일 것입니다.
if (focusedEditText != null)는 focusedEditText가 null이 아닌지를 확인합니다.
focusedEditText는 현재 포커스가 있는 EditText입니다. String currentText = focusedEditText.getText().toString();는 현재 focusedEditText에 입력된 텍스트를 가져와 currentText라는 변수에 저장합니다. focusedEditText.setText(currentText + num);는 focusedEditText에 기존 텍스트(currentText)에 클릭된 버튼의 텍스트(num)를 추가하여 설정합니다.
예를 들어, 기존 텍스트가 "12"이고 버튼이 "3"이라면, 새로운 텍스트는 "123"이 됩니다.
이렇게 setButtonClickListener를 onCreate 함수 바깥에 위치시키고, onCreate 함수 내에서
// 버튼 클릭 리스너 설정
setButtonClickListener(btn_1);
setButtonClickListener(btn_2);
setButtonClickListener(btn_3);
setButtonClickListener(btn_4);
setButtonClickListener(btn_5);
setButtonClickListener(btn_6);
setButtonClickListener(btn_7);
setButtonClickListener(btn_8);
setButtonClickListener(btn_9);
setButtonClickListener(btn_0);
setButtonClickListener(btn_dot);
setButtonClickListener 함수를 불러오면 되겠다고 생각했다!
위 코드에서 focusedEditText 관련 설명은 아래에!
2. focusedEditText 로 포커스된 EditText에 숫자와 . String 받아오기
우선 여기까지했으면 버튼을 누른것이 된다.
우리는 EditText 2개에 각각 숫자를 입력받아야하므로, 어떤 EditText가 선택되었는지 알아야한다.
첫번째 EditText가 선택되어있으면 첫번째 EditText에 숫자가 들어가야하고
두번째 EditText가 선택되어있으면 두번째 EditText에 숫자가 들어가야한다.
따라서 선택된 EditText를 알아내기 위해 변수로 EditText focusedEditText; 를 선언해준다.
이후에 onCreate 함수 내에
// EditText가 포커스될 때 해당 EditText를 focusedEditText에 저장
et_1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
focusedEditText = et_1;
}
}
});
et_2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
focusedEditText = et_2;
}
}
});
setOnFocusChangeListener를 사용하여
EditText가 포커스 될 때 해당 EditText를 focusedEditText에 저장하도록 한다.
이렇게 되면 focusedEditText에는 무조건 et_1 또는 et_2가 저장된다.
그리고 나서 숫자나 . 버튼을 눌렀을때 그 값이 focusedEditText에 들어가게 하기 위해
private void setButtonClickListener(final Button button) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 버튼의 텍스트를 가져와서 EditText에 추가
String num = button.getText().toString();
if (focusedEditText != null) { //만약 focusedEditText가 null이 아니면
String currentText = focusedEditText.getText().toString();
focusedEditText.setText(currentText + num); //원래 있는 text+눌러진 숫자 테스트 추가
}
}
});
이 코드를 onCreate 함수 밖에 써주는 것이다!
if문을 사용해서 만약 focusedEditText의 값이 null이 아니라 이미 값이 존재한다면
원래 존재하던 값을 가져와서 String 형태로 currentText 변수에 저장하고
currentText + num 을 하여 원래 있는 text와 눌러진 숫자 테스트가 String 형태로 이어지게 하면 된다!
이렇게 하면 숫자와 .버튼이 눌러졌을 때 그 값이 focusedEditText 안으로 들어가 입력된다.
3. 사칙연산 버튼, 초기화 버튼
계산기의 마지막 단계에 다다랐다!
이제 숫자 2개는 입력했고, 사칙연산 버튼을 누르면 아래 결과값 EditText에 계산결과를 띄우면 된다.
이 사칙연산과 초기화 버튼은 위에서 처음 생각했던 것대로 setOnClickListener를 사용해서 각각 만들어줬다.
btn_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 합
Float resultnum = num1 + num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 차
Float resultnum = num1 - num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_multiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 곱
Float resultnum = num1 * num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_slash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 몫
Float resultnum = num1 / num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_percent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 나머지
Float resultnum = num1 % num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String noText = "";
focusedEditText.setText(noText);
}
});
et_1과 et_2의 값은 String 값이라서 연산이 불가능하다.
따라서 우리는 et_1, et_2값을 실수 값으로 변경 시켜줄 필요가 있다.
String 형태를 float 형태로 변환하기 위해서 Float.parseFloat(변환해 줄 String값)을 사용했다.
이후 resultnum 변수를 만들어 사칙 연산을 수행해주고
결과값에는 또 String 형태로 들어가야하므로 String.valueOf(결과값)을 하여 실수 → String 형태로 변환했다!
마지막으로 reset 버튼을 눌렀을때는 focusedEditText의 값이 초기화되어야하므로
String noText = ""; 으로 비어있는 noText 변수를 선언해주고
focusedEditText.setText(noText); 로 focusedEditText를 비도록 setText 해주었다.
[ 실행 화면 ]
더하기 결과![]() |
빼기 결과![]() |
곱하기 결과![]() |
나누기 결과![]() |
나머지 구하기 결과![]() |
초기화 결과 (et_1 (첫번째 EditText) 초기화)![]() |
1. 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/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<EditText
android:id="@+id/et_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:background="#FFF0DD"
android:padding="12dp"
android:hint="값을 입력하세요"
android:textSize="23sp"
/>
<EditText
android:id="@+id/et_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="#FFF0DD"
android:padding="12dp"
android:hint="값을 입력하세요"
android:textSize="23sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="8dp"
android:orientation="horizontal"
>
<Button
android:id="@+id/btn_1"
android:text="1"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="8dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_2"
android:text="2"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="8dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_3"
android:text="3"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="15dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_plus"
android:text="+"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_4"
android:text="4"
android:layout_width="0dp"
android:textSize="28sp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_weight="1"
android:layout_marginEnd="8dp"
/>
<Button
android:id="@+id/btn_5"
android:text="5"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="8dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_6"
android:text="6"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="15dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_minus"
android:text="-"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_7"
android:layout_width="0dp"
android:textSize="28sp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_weight="1"
android:layout_marginEnd="8dp"
android:text="7" />
<Button
android:id="@+id/btn_8"
android:text="8"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="8dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_9"
android:text="9"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="15dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_multiply"
android:text="*"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_dot"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_weight="1"
android:layout_marginEnd="8dp"
android:text="." />
<Button
android:id="@+id/btn_0"
android:text="0"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#F4C174"
android:layout_marginEnd="8dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_percent"
android:text="%"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_marginEnd="15dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_slash"
android:text="/"
android:textSize="28sp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:backgroundTint="#C5831F"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_reset"
android:text="초기화"
android:backgroundTint="#76542F"
android:textSize="28sp"
android:layout_width="match_parent"
android:layout_height="80dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<EditText
android:id="@+id/et_result"
android:textSize="23sp"
android:text=" 결과값 : "
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4DECD"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
2. MainActivity.java 코드
package com.example.android_test;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
EditText et_1;
EditText et_2;
EditText et_result;
EditText focusedEditText;
Button btn_1;
Button btn_2;
Button btn_3;
Button btn_4;
Button btn_5;
Button btn_6;
Button btn_7;
Button btn_8;
Button btn_9;
Button btn_0;
Button btn_dot;
Button btn_percent;
Button btn_plus;
Button btn_minus;
Button btn_multiply;
Button btn_slash;
Button btn_reset;
@Override
//onCreate -> 어플을 처음 실행했을때 실행됨
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// EditText 초기화
et_1 = findViewById(R.id.et_1);
et_2 = findViewById(R.id.et_2);
et_result = findViewById(R.id.et_result);
// 버튼 초기화
btn_1 = findViewById(R.id.btn_1);
btn_2 = findViewById(R.id.btn_2);
btn_3 = findViewById(R.id.btn_3);
btn_4 = findViewById(R.id.btn_4);
btn_5 = findViewById(R.id.btn_5);
btn_6 = findViewById(R.id.btn_6);
btn_7 = findViewById(R.id.btn_7);
btn_8 = findViewById(R.id.btn_8);
btn_9 = findViewById(R.id.btn_9);
btn_0 = findViewById(R.id.btn_0);
btn_dot = findViewById(R.id.btn_dot);
btn_percent = findViewById(R.id.btn_percent);
btn_plus = findViewById(R.id.btn_plus);
btn_minus = findViewById(R.id.btn_minus);
btn_multiply = findViewById(R.id.btn_multiply);
btn_slash = findViewById(R.id.btn_slash);
btn_reset = findViewById(R.id.btn_reset);
// EditText가 포커스될 때 해당 EditText를 focusedEditText에 저장
et_1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
focusedEditText = et_1;
}
}
});
et_2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
focusedEditText = et_2;
}
}
});
// 버튼 클릭 리스너 설정
setButtonClickListener(btn_1);
setButtonClickListener(btn_2);
setButtonClickListener(btn_3);
setButtonClickListener(btn_4);
setButtonClickListener(btn_5);
setButtonClickListener(btn_6);
setButtonClickListener(btn_7);
setButtonClickListener(btn_8);
setButtonClickListener(btn_9);
setButtonClickListener(btn_0);
setButtonClickListener(btn_dot);
// btn_1.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// String num = btn_1.getText().toString();
// String currentText = et_1.getText().toString();
// et_1.setText(currentText+num);
// }
// });
//
// btn_2.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// String num = btn_2.getText().toString();
// String currentText = et_1.getText().toString();
// et_1.setText(currentText+num);
// }
// });
btn_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 합
Float resultnum = num1 + num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 차
Float resultnum = num1 - num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_multiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 곱
Float resultnum = num1 * num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_slash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 몫
Float resultnum = num1 / num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_percent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//num1, num2를 실수형태로 저장
//String 형태를 float형태로 변환하기위해 Float.parseFloat 필요
// num1, num2를 실수형태로 저장
Float num1 = Float.parseFloat(et_1.getText().toString());
Float num2 = Float.parseFloat(et_2.getText().toString());
// 두 숫자의 나머지
Float resultnum = num1 % num2;
// 결과를 String 형태로 변환하여 EditText에 설정
et_result.setText(" 결과값 : " + String.valueOf(resultnum));
}
});
btn_reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String noText = "";
focusedEditText.setText(noText);
}
});
}
private void setButtonClickListener(final Button button) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 버튼의 텍스트를 가져와서 EditText에 추가
String num = button.getText().toString();
if (focusedEditText != null) { //만약 focusedEditText가 null이 아니면
String currentText = focusedEditText.getText().toString();
focusedEditText.setText(currentText + num); //원래 있는 text+눌러진 숫자 테스트 추가
}
}
});
}
}
'프로젝트' 카테고리의 다른 글
[안드로이드 스튜디오 프로젝트] 자기소개앱_3 (DrawerLayout 적용) (7) | 2024.09.06 |
---|---|
[안드로이드 스튜디오 프로젝트] 자기소개앱_2 (ScrollView) (2) | 2024.09.05 |
[프로젝트] DB와 연동한 동아리 신청폼 만들기 (1) | 2024.09.05 |
[안드로이드 스튜디오 프로젝트] 자기소개앱.xml (1) | 2024.09.04 |
[안드로이드 스튜디오 프로젝트] 간단한 계산기 만들기 (xml) (0) | 2024.08.29 |