학교 공부/안드로이드 프로그래밍_코드
안드로이드 프로그래밍_직접 풀어보기 4-3 코드
_빌런
2022. 3. 23. 18:00
<!-- XML Code -->
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">
<EditText
android:id="@+id/Edit1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:ems="10"
android:hint="숫자1 (실수 가능)"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/Edit2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="숫자2 (실수 가능)"
app:layout_constraintStart_toStartOf="@+id/Edit1"
app:layout_constraintTop_toBottomOf="@+id/Edit1" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="14dp"
android:backgroundTint="#999999"
android:text="더하기"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Edit2" />
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="14dp"
android:backgroundTint="#999999"
android:text="빼기"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button5" />
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="14dp"
android:backgroundTint="#999999"
android:text="곱하기"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button6" />
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="14dp"
android:backgroundTint="#999999"
android:text="나누기"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button7" />
<TextView
android:id="@+id/TextResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="결괏값"
android:textColor="#FF0000"
android:textSize="30sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button9" />
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:backgroundTint="#999999"
android:text="나머지"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button8" />
</androidx.constraintlayout.widget.ConstraintLayout>
// JAVA Code
package com.example.example_4_1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MotionEvent;
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 {
EditText edit1, edit2;
Button btnAdd, btnSub, btnMul, btnDiv, btnRem;
TextView textResult;
String num1, num2;
Float result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("이런 게 계산기라니");
edit1 = (EditText) findViewById(R.id.Edit1);
edit2 = (EditText) findViewById(R.id.Edit2);
btnAdd = (Button) findViewById(R.id.button5);
btnSub = (Button) findViewById(R.id.button6);
btnMul = (Button) findViewById(R.id.button7);
btnDiv = (Button) findViewById(R.id.button8);
btnRem = (Button) findViewById(R.id.button9);
textResult = (TextView) findViewById(R.id.TextResult);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num1)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
result = Float.parseFloat(num1) + Float.parseFloat(num2);
textResult.setText("결과 : " + result.toString());
}
});
btnSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num1)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
result = Float.parseFloat(num1) - Float.parseFloat(num2);
textResult.setText("결과 : " + result.toString());
}
});
btnMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num1)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
result = Float.parseFloat(num1) * Float.parseFloat(num2);
textResult.setText("결과 : " + result.toString());
}
});
btnDiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num1)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
else if (TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(),"2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
if (num2.equals("0")) {
// if (num2 == "0")은 문자열 비교에서 사용할 수 없다.
Toast.makeText(getApplicationContext(),"0으로 나눌 수 없습니다.", Toast.LENGTH_SHORT).show();
textResult.setText("연산 불가능");
}
else {
result = Float.parseFloat(num1) / Float.parseFloat(num2);
textResult.setText("결과 : " + result.toString());
}
}
});
btnRem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if (TextUtils.isEmpty(num1) && TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(), "입력이 하나도 없습니다.", Toast.LENGTH_SHORT).show();
return;
} else if (TextUtils.isEmpty(num1)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(), "1번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
} else if (TextUtils.isEmpty(num2)) {
// if (num1.length()==0)
Toast.makeText(getApplicationContext(), "2번 입력이 없습니다.", Toast.LENGTH_SHORT).show();
return;
}
if (num2.equals("0")) {
// if (num2 == "0")은 문자열 비교에서 사용할 수 없다.
Toast.makeText(getApplicationContext(), "0으로 나눌 수 없습니다.", Toast.LENGTH_SHORT).show();
textResult.setText("연산 불가능");
} else {
result = Float.parseFloat(num1) % Float.parseFloat(num2);
textResult.setText("결과 : " + result.toString());
}
}
});
}
}