1 / 25

To be an Android Expert

앱창작터. To be an Android Expert. 안드로이드 여대생 기초 과정. Simple Calculator - Initial Implementation. 문양세 , 최미정 강원대학교 IT 대학 컴퓨터학부. 초기계산기에 두뇌를 심어줍시다 ~. 변수 선언. first : 초기 상태인 경우에 true mAfter : 직전 계산 값을 유지함 operator : 연산자 지정 ( 저장 ) dotpress : dot(“.”) 인 눌린 경우에 true

chesmu
Download Presentation

To be an Android Expert

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 앱창작터 To be an Android Expert • 안드로이드여대생 기초 과정 Simple Calculator - Initial Implementation 문양세, 최미정 강원대학교 IT대학 컴퓨터학부

  2. 초기계산기에 두뇌를 심어줍시다~

  3. 변수 선언 first : 초기 상태인 경우에 true mAfter : 직전 계산 값을 유지함 operator : 연산자 지정(저장) dotpress : dot(“.”)인 눌린 경우에 true result: : 연산 결과를 출력하기 위한 TextView

  4. OnClickListener등록 – 설명 • 18개의 버튼에 대해 이벤트를 할당한다. • 각 버튼의 객체는 findViewById()를 통해 얻어오고,이벤트 리스너mClickListener()을등록한다. • 18개의 버튼은 다음과 같다. • R.id.btn_back: 백스페이스 버튼 • R.id.btn_c: 클리어(“C”) 버튼 • R.id.btn_num0 ~ R.id.btn_num9: 숫자(“0” ~ “9”) 버튼 • R.id.btn_plus, R.id.btn_minus, R.id.btn_mul, R.id.btn_div: 사칙연산 버튼 • R.id.btn_equal: 등호(“=“) 버튼 • R.id.btn_dot: dot(“.”) 버튼

  5. OnClickListener등록 - 코드

  6. OnClickListener정의 – 설명 (1/3) • 백 스페이스 버튼(R.id.btn_back)이 눌렸을 때, backPress() 메소드를 호출한다. • 클리어(“C”)버튼(R.id.btn_c)이 눌렸을 때,각 변수를 초기화 한다. (화면은 “0.”으로 초기화한다.) 햅틱 효과(버튼을 누르면 짧게 진동 발생)를 발생시키기 위해, VIBRATOR_SERVICE를 등록한다.

  7. OnClickListener정의 – 설명 (2/3) • 사칙연산(+, -, x, /, =) 버튼(예:R.id.plus)이 눌렸으면, SachickPress() 메소드를 호출하되, 해당 연산을 인수로 넘겨준다. 숫자 버튼(예: R.id.num0)을 눌렀을 때, numPress() 메소드를 호출하되, 해당 숫자를 인수로 넘겨준다.

  8. OnClickListener정의 – 설명 (3/3) 도트(dot) 버튼(R.id.btn_dot)이 눌렸으면, (a) dotpress= true로 하여소수점 이하임을 나타내고,(b) 초기 상태(first)를 false로 한다.

  9. OnClickListener정의 - 코드 (1/2)

  10. OnClickListener정의 – 코드 (2/2)

  11. backPress()– 설명 (1/3) • TextView값이 두 글자인데 백 스페이스가 눌려졌으면, 초기 값과 같아지므로 초기상태로 만든다. (참고: “.” 때문에 기본이 두 글자임) • 예: “9.”에서 9를 지우면 “0.”으로 만든다. 현재 TextView의 값을 가져와 양쪽 여백을 제거한다.

  12. backPress()– 설명 (2/3) 마지막이 “.”라면(소수점 이하 자리가 없다면), 도트가 눌리지 않은 상태로 되돌린다. 마지막이 “.”이 아니라면(소수점 이하 자리가 있다면),맨 마지막 숫자 하나를 지운다. 도트가 눌려진 상태에서 백 스페이스가 눌렸다면...

  13. backPress()– 설명 (3/3) 만약 “.”가 눌리지 않은 상태에서 백 스페이스가 눌렸다면,마지막 두 글자를 지우고 뒤에 “.”을 붙인다.예를 들어, “739.” 이었다면, 뒤의 “9.”을 지우고 “73”에다 “.”을 붙여서 “73.”을 만든다. 도트가 눌리지 않은 상태에서 백 스페이스가 눌렸다면...

  14. backPress() - 코드

  15. numPress()– 설명 (1/2) 초기상태에서 “0”이 눌렸다면, 그냥 “0.”을 유지하고, 초기상태(first = true)도 유지한다. 초기상태에서 숫자(“1” ~ “9”)가 눌렸다면,해당 숫자에 “.”을 붙여서 나타내고,초기상태에서 벗어난다(first = false). 초기 상태(first = true)에서 숫자가 눌렸다면...

  16. numPress()– 설명 (2/2) TextView의 내용을 가져와 양쪽 공백을 제거한다. 소수점 이하라면, 해당 숫자를 마지막에 붙여 나타낸다.(예: “739.”  “739.4”) 소수점이 아니라면, 맨 마지막의 점(“.”)을 없앤 후, 해당 숫자를 붙이고, 다시금 마지막에 점(“.”)을 넣어 나타낸다.(예: “739.”  “7395.”) 초기가 아닌 상태(first = false)에서 숫자가 눌렸다면...

  17. numPress() - 코드

  18. SachickPress()– 설명 (1/3) • TextView에 있는 내용을 실수(Double)로 변환하여,이를 change 변수에 저장한다. 초기 상태(first = true)에서 “=“이 눌렸다면,그냥 0을 출력하고, 초기상태를 유지한다.

  19. SachickPress()– 설명 (2/3) • 연산자가 “=“이 아니면, operator 변수에 해당 연산자를 저장해 둔다. 주어진 연산자(operator)에 따라, 이전 값(mAfter)과 현재 값(change)에 대한 사칙연산을 수행한다.

  20. SachickPress()– 설명 (3/3) 소수점 이하 값이 있는지 체크한다. (ii에 소수점 이하 자리가 들어간다.) 소수점 이하 자리가 없으면,결과 + “.” 을출력한다. 소수점 이하 자리가 있으면,해당 결과를 그냥 출력한다. 계산이 끝났으므로, 초기상태로 돌린다. 소수점 이하 값을 처리한다.

  21. SachickPress() - 코드

  22. Manifest 수정 (Vibration)

  23. 아이콘을 바꿔 볼까요~

  24. 바르게 동작하는지 확인해 보세요~

More Related