일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ElasticSearch EdgeNGram
- 안드로이드스튜디오
- ElasticSearch 토큰필터
- ElasticSearch 동의어 사전
- 안드로이드
- H2 DB
- Servlet 멀티 스레딩
- ContextLoaderListener란
- ApplicationContext란
- H2
- elasticSearch
- Java
- 계산기
- layout
- Servlet Container란
- ElasticSearch NGram
- Spring Handler
- Servlet Life Cycle
- Servlet과 Thread
- Bean Factory란
- Spring Container란
- 토큰필터
- spring 장점
- 자바
- Spring Servlet이란
- Dispathcher Servlet이란
- ElasticSearch Shingle
- ElasticSearch 동의어 파일
- 인텔리제이
- 동의어 파일
- Today
- Total
목록계산기 (9)
결국 무엇이든 해내는 사람

package com.example.youtube_cal; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { boolean isFirstInput = true; // 입력값이 처음입력값인지 체크 int resultNumber = 0; //결과값 char operator = '+..

전단계에서 이제 +버튼 클릭시 코드를 구현 lastNum은 기존에 있던 출력창의 값을 받아서 int로 저장한 변수이다. 내가 만약 16을 누르고 +를 누르면 operator는 +였으므로 (처음 숫자를 입력후 +를 눌렀다면) resultNumber값은 resultNumber값 + lastNum값이된다 . 만약 operator가 -였으면 -연산을하고 + 로 바꾸겠지용 지금은 +인 부분만 적어놨으니 헷갈리는데 마이너스면 저 밑에서 5번쨰줄 operator = '-'; 로 바뀌고 뭐 그럴것인데 이런경우 다 복붙을 해줘야하니 이것도 문제임. 저 한줄만 다르고 나머지는 더하기 뺴기 곱하기 나누기 ㄷ ㅏ똑같은데 ;; 그래서 이렇게 수정한다 getButton의 텍스트를 가져오는데 이를 스트링으로 바꾸..

전에 만들었던 스위치문의 default부분이다. Log를 이용하면 하단 Logcat에서 메세지가 출력되게끔 할 수 있다. 이런식으로! (CE버튼클릭시) 혹시나 로그캣에 계속 gnssSvStatusCb: b: input svInfo.flags is 8 이런 빨간 문구가 계속 뜬다면 이건 가상 에뮬레이터에 gps 기능을 탑재시켜서 그런것임 https://www.google.com/search?q=gnssSvStatusCb%3A+b%3A+input+svInfo.flags+is+8&oq=gnssSvStatusCb%3A+b%3A+input+svInfo.flags+is+8&aqs=chrome..69i57j69i58.330j0j7&sourceid=chrome&ie=UTF-8 gnssSvStatusCb:..

이번에는 저번에 만든 이 부분을 switch 케이스 문으로 바꾸어 구현해볼것이다. 이렇게 ! 0번이던 9번이던 break를 만나지않으면 아래 케이스를 계속 실행하는 것을 이용하였다. 깔끔하지않나? 이때 위에 적힌 AC버튼 코드도 케이스문에 넣어서 정리할 수 있다. 그리고 getButton 부분을 메소드 상단에 올려두어 보기좋게 해준다 나머진 주석 ㅇㅇ 그리고 케이스문에 default값을 주어 버그를 쉽게 찾을 수 있게 한다. 이러고 실행해보면 이런식으로 메시지가 띄워진다. 왜냐? 나는ㅇ ㅏ직 CE 버튼을 안만들었으니까! 그리고 Toast 작성시 코드가 꽤 긴데 이럴땐 토스트 입력후 , 텝키를 한번 딱 눌러주면 알아서 써준다ㅇㅇ 이번 게시글은 여기까지 .,.

여지껏 만든 조건구문을 이제 , 0번부터 ,,, 9번까지 쭈욱 복사해서 붙여넣으면 완성이다. 하지만 이러면 , 확장성이 떨어지고, 코드도 길어지게된다 . 그래서 다른 방법을 배운다. Button 형 변수 getButton을 선언하여, 메소드가 실행될때마다 view값을 받아오니까 , 그 view의 id값을 받아온다! 그리고 그 view의 주소를(주소가 맞는지는 모르곘음) getButton에 받아오는 것 ,,,같다(ㅠ) 이를 이용해서 이런식으로 수정해본다. 그러면 맨 상위의 if문 조건도 바꾸어줘야하는데 .. 이때 리소스 값을(R.java) 찾아서 추적해보자 R.java를 찾아보면 이런식으로 뜨는데 ctrl+ F를 눌러서 0~9번버튼의 이름을 검색해보자, 나는 통일성을 갖기위해 nu..

결과표시값은 초기에는 회색으로 표시되게끔 해놓는다. AC버튼을 눌렀을 때 resultNumber (int값)은 0으로 초기화 해주고, setText를 통해 0값을 갖다둔다. 그럼이제 본격적으로 1이 눌렸을때 를 구현한다 1이 눌렸을때 if문을 하나 더 만나는데, 이는 처음으로 눌린 수(초기값0이었을때, 처음으로 눌렸는지) 인지 확인하는 조건문이다 . 이때만약 처음으로 눌린 수라면 검은색으로 바꾸어주고 , 숫자를 1로 해준다. 그리고 isFirstInput값을 false로 바꾸어준다. else인경우는 첫수가아니므로 뒤에 1을 붙여주는 append를 사용한다. 아래는 결과

이전 게시글에 이어 , 버튼 클릭시 이벤트에 대해 배워봄 클릭리스너를 사용하지않고 , 버튼 클릭시 메소드를 호출하여 텍스트에 화면을 띄우는 것까지 해봄 main.java에 이런식으로 메소드를 등록 그리고 xml파일에서 , 모든 Button에 android:onClick="buttonClick" 을 설정해준다. 그러면 1을 눌렀을 때 1이 화면에 띄워진다.