기본 개념: https://200percent.tistory.com/entry/Android-Studio-%EA%B8%B0%EB%B3%B8-%EC%9C%84%EC%A0%AF
(책을 요약하는 과정에서 너무 책의 내용을 그대로 가져와버려서 어쩔 수 없이 비공개 처리를 했다...)
직접 풀어보기 4-3은 실습 4-1을 개선시키는 거였는데 실습 4-1을 해볼 때 id를 미리 정해준 줄 모르고 혼자 정해버렸다... 그래서 4-3 id랑 변수도 예제에 나온 것들과 다르게 되어버린...
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/num1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:hint="숫자1" />
<EditText
android:id="@+id/num2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:hint="숫자2" />
<Button
android:id="@+id/plus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="더하기" />
<Button
android:id="@+id/minus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="빼기" />
<Button
android:id="@+id/multiply"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="곱하기" />
<Button
android:id="@+id/division"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="나누기" />
<Button
android:id="@+id/remain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="나머지값" />
<TextView
android:id="@+id/cal_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FF0000"
android:layout_margin="5dp"
android:textSize="30dp"
android:text="계산 결과 : " />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
EditText num1, num2;
Button plus, minus, multi, divi, rema;
TextView result;
String box1, box2;
Float cal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("초간단 계산기(수정)");
num1 = (EditText) findViewById(R.id.num1);
num2 = (EditText) findViewById(R.id.num2);
plus =(Button) findViewById(R.id.plus);
minus =(Button) findViewById(R.id.minus);
multi =(Button) findViewById(R.id.multiply);
divi =(Button) findViewById(R.id.division);
rema = (Button) findViewById(R.id.remain);
result = (TextView) findViewById(R.id.cal_result);
plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
box1 = num1.getText().toString();
box2 = num2.getText().toString();
if(box1.trim().equals("")||box2.trim().equals("")){
Toast.makeText(getApplicationContext(), "값을 입력해주세요", Toast.LENGTH_SHORT).show();
} else{
cal = Float.parseFloat(box1) + Float.parseFloat(box2);
result.setText("계산 결과 : "+cal.toString());}
}
});
minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
box1 = num1.getText().toString();
box2 = num2.getText().toString();
if(box1.trim().equals("")||box2.trim().equals("")){
Toast.makeText(getApplicationContext(), "값을 입력해주세요", Toast.LENGTH_SHORT).show();
} else{
cal = Float.parseFloat(box1) - Float.parseFloat(box2);
result.setText("계산 결과 : "+cal.toString());}
}
});
multi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
box1 = num1.getText().toString();
box2 = num2.getText().toString();
if(box1.trim().equals("")||box2.trim().equals("")){
Toast.makeText(getApplicationContext(), "값을 입력해주세요", Toast.LENGTH_SHORT).show();
} else{
cal = Float.parseFloat(box1) * Float.parseFloat(box2);
result.setText("계산 결과 : "+cal.toString());}
}
});
divi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
box1 = num1.getText().toString();
box2 = num2.getText().toString();
if(box1.trim().equals("")||box2.trim().equals("")){
Toast.makeText(getApplicationContext(), "값을 입력해주세요", Toast.LENGTH_SHORT).show();
} else if(box2.trim().equals("0")){
Toast.makeText(getApplicationContext(), "0으로 나눌 수 없습니다", Toast.LENGTH_SHORT).show();
}else{
cal = Float.parseFloat(box1) / Float.parseFloat(box2);
result.setText("계산 결과 : "+cal.toString());}
}
});
rema.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
box1 = num1.getText().toString();
box2 = num2.getText().toString();
if(box1.trim().equals("")||box2.trim().equals("")){
Toast.makeText(getApplicationContext(), "값을 입력해주세요", Toast.LENGTH_SHORT).show();
} else if(box2.trim().equals("0")){
Toast.makeText(getApplicationContext(), "0으로 나눌 수 없습니다", Toast.LENGTH_SHORT).show();
}else{
cal = Float.parseFloat(box1) % Float.parseFloat(box2);
result.setText("계산 결과 : "+cal.toString());}
}
});
}
}
공백 확인 if문을 처음엔
if(box1.equals("")||box2.equals("")){
이렇게 작성했는데 다른 분들께서 작성해서 올리신 걸 보니까 "trim()"이라는게 붙어있어서 차이를 확인해봤더니 저게 공백을 제거해주는 함수여서 띄어쓰기로 둔 경우에도 값을 입력하라는 문구가 뜨도록 해주었다!
오늘 4단원 끝까지 했어야했는데... 청소하고 할 일 끝내고 시간이 되면 하고 아니면 내일 해야겠다...
내일 원래 자격증 공부만 하려고 했었는데 어쩔 수 없지 뭐...
'DEVELOPMENT' 카테고리의 다른 글
[Android Studio] Chapter 4 연습문제 (0) | 2021.06.09 |
---|---|
[Android Studio] 안드로이드 사진 보기 어플 (0) | 2021.05.07 |
[Android Studio] 뷰, 위젯, 레이아웃 (0) | 2021.05.06 |
[Android Studio] 프로젝트 기본 구성 (0) | 2021.05.04 |
[Android Studio] 개발환경 구축, The emulator process for [AVD 이름] was killed 오류 (0) | 2021.05.03 |