728x90
반응형
정답지 아닙니다.
블로그 주인이 생각한 코드라서
오타, 오류 있을 수 있습니다.
(>> 댓글로 알려주시면 정정하겠습니다!)
직접 풀어보기 4-2
<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:orientation="vertical"
android:padding="20dp">
<Button
android:background="#009E22"
android:padding="10dp"
android:text="버튼 1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp"
android:text="이건 텍스트뷰입니다."
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:background="#0000D3"
android:layout_marginBottom="50dp"
android:hint="이건 에디트텍스트입니다."
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:text="버튼 2"
android:textColor="#5C000000"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
<java 코드>
package com.cookandroid.myself4_2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("직접 풀어보기 4-2");
}
}
실습 4-1, 초간단 계산기
<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:orientation="vertical">
<EditText
android:id="@+id/Edit1"
android:hint="숫자1"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/Edit2"
android:hint="숫자2"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnAdd"
android:layout_margin="10dp"
android:padding="20dp"
android:text="더하기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnSub"
android:layout_margin="10dp"
android:padding="20dp"
android:text="빼기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnMul"
android:layout_margin="10dp"
android:padding="20dp"
android:text="곱하기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnDiv"
android:layout_margin="10dp"
android:padding="20dp"
android:text="나누기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/TextResult"
android:textColor="#FF0000"
android:layout_margin="10dp"
android:textSize="30dp"
android:text="계산 결과 : "
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<java 코드>
package com.cookandroid.practice4_1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText edit1, edit2;
Button btnAdd, btnSub, btnMul, btnDiv;
TextView textResult;
String num1, num2;
int result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = findViewById(R.id.Edit1);
edit2 = findViewById(R.id.Edit1);
btnAdd = findViewById(R.id.BtnAdd);
btnDiv = findViewById(R.id.BtnDiv);
btnMul = findViewById(R.id.BtnMul);
btnSub = findViewById(R.id.BtnSub);
textResult = findViewById(R.id.TextResult);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
result = Integer.parseInt(num1) + Integer.parseInt(num2);
textResult.setText("계산 결과 : "+result);
}
});
btnSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
result = Integer.parseInt(num1) - Integer.parseInt(num2);
textResult.setText("계산 결과 : "+result);
}
});
btnMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
result = Integer.parseInt(num1) * Integer.parseInt(num2);
textResult.setText("계산 결과 : "+result);
}
});
btnDiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
result = Integer.parseInt(num1) / Integer.parseInt(num2);
textResult.setText("계산 결과 : "+result);
}
});
}
}
직접 풀어보기 4-3 (실습 4-1 응용)
<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:orientation="vertical">
<EditText
android:id="@+id/Edit1"
android:hint="숫자1"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/Edit2"
android:hint="숫자2"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnAdd"
android:layout_margin="10dp"
android:padding="20dp"
android:text="더하기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnSub"
android:layout_margin="10dp"
android:padding="20dp"
android:text="빼기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnMul"
android:layout_margin="10dp"
android:padding="20dp"
android:text="곱하기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnDiv"
android:layout_margin="10dp"
android:padding="20dp"
android:text="나누기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnRemain"
android:layout_margin="10dp"
android:padding="20dp"
android:text="나머지값"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/TextResult"
android:textColor="#FF0000"
android:layout_margin="10dp"
android:textSize="30dp"
android:text="계산 결과 : "
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<java 코드> - 실행 오류 있음.
package com.cookandroid.practice4_1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
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, btnRemain;
TextView textResult;
String num1, num2;
float result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("초간단 계산기(수정)");
edit1 = findViewById(R.id.Edit1);
edit2 = findViewById(R.id.Edit1);
btnAdd = findViewById(R.id.BtnAdd);
btnDiv = findViewById(R.id.BtnDiv);
btnMul = findViewById(R.id.BtnMul);
btnSub = findViewById(R.id.BtnSub);
btnRemain = findViewById(R.id.BtnRemain);
textResult = findViewById(R.id.TextResult);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if ((num1.equals("")==true)||(num2.equals("")==true)) {
Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();
return;
} else {
result = Float.parseFloat(num1) + Float.parseFloat(num2);
textResult.setText("계산 결과 : " + result);
}
}
});
btnSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if ((num1.equals("") == true) || (num2.equals("") == true)) {
Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();
} else {
result = Float.parseFloat(num1) - Float.parseFloat(num2);
textResult.setText("계산 결과 : " + result);
}
}
});
btnMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if ((num1.equals("")==true)||(num2.equals("")==true)) {
Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();
} else {
result = Float.parseFloat(num1) * Float.parseFloat(num2);
textResult.setText("계산 결과 : " + result);
}
}
});
btnDiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if ((num1.equals(""))||(num2.equals(("")))) {
Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();
} else if((num2.equals("0"))) {
Toast.makeText(getApplicationContext(),"0으로 나눌 수 없습니다.", Toast.LENGTH_SHORT).show();
} else {
result = Float.parseFloat(num1) / Float.parseFloat(num2);
textResult.setText("계산 결과 : " + result);
}
}
});
btnRemain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
num1 = edit1.getText().toString();
num2 = edit2.getText().toString();
if ((num1.equals("")==true)||(num2.equals("")==true)) {
Toast.makeText(getApplicationContext(), "값을 입력하세요", Toast.LENGTH_SHORT).show();
} else {
result = Float.parseFloat(num1) % Float.parseFloat(num2);
textResult.setText("계산 결과 : " + result);
}
}
});
}
}
▶ 실습 4-1에서 수정한 부분
- 나머지값 구하는 버튼 추가
- 값 입력 안하고 버튼 눌렀을 때 오류 메세지 토스트로 나타내기
- 실숫값 계산
- 0으로 나누면 토스트 메세지 나타내고 계산 안하기
▶ 오류
1. 숫자2 > 숫자1, 음수 결과가 안나오고 0으로 끝남.
2. "숫자2 = 0일때"라고 if문을 줬는데 "숫자1=0"일때 토스트문이 나타남.
3. 나머지값 계산 제대로 안됨.
'모바일 > android' 카테고리의 다른 글
[안드로이드프로그래밍6판] 4장 연습 문제 7, 8 (0) | 2021.10.16 |
---|---|
[안드로이드프로그래밍6판] 4장 실습 4-2, 직접 풀어보기 4-4 (0) | 2021.10.16 |
[안드로이드프로그래밍 6판] 2장 직접 풀어보기 2-3, 연습 문제 7 (0) | 2021.10.15 |
[android_기초] 새로운 위젯 형성의 흐름, Toast 메시지 이용 (0) | 2021.09.13 |
[android_기초] 참고: xml 문서 작성방법 (0) | 2021.09.13 |