[Doit! 안드로이드 앱 프로그래밍] Mission4
참고서적: Doit 안드로이드 앱 프로그래밍
Mission4 SMS 입력 화면 만들고 글자의 수 표시하기
- MS로 문자를 전송하는 화면은 위쪽에 텍스트 입력상자, 아래쪽에 ‘전송’ 과 ‘닫기’ 버튼을 수평으로 배치하도록 구성합니다.
- 텍스트 입력상자 바로 아래에 입력되는 글자의 바이트 수를 ‘10/80 바이트’ 와 같은 포맷으로 표시하되 우측 정렬로 하도록 하고 색상을 눈에 잘띄는 다른 색으로 설정합니다.
- 텍스트 입력상자에 입력되는 글자의 크기와 줄 간격을 조정하여 한 줄에 한글 8글자가 들어가도록 만들어 봅니다.
- ‘전송’ 버튼을 누르면 입력된 글자를 화면에 토스트로 표시하여 내용을 확인 할 수있도록 합니다.
구성요소로는 부모컨테이너는 LinearLayout 으로, 그리고 내부에 editText 와 textview 와 버튼2개를 구성한다.
처음에 입력상자를 뭐로해야하는거지? 고민하다가 textview로 구성했는데, 실행햇을때 입력받을수 있는 상자가 뜨지않았다…
그래서 구글링한 결과 editText라는걸 찾을수 있었다. 하지만 editText는 왜 팔레트에 없는지의문.. 버전이안맞아서 그런건지;;
위치들은 weight 속성값과 gravity 속성값을 통해 정렬하고 조절할수있다. 처음에, padding값을 통해서 정렬하려고 했엇는데 , 우측정렬이라는 키워드에 배웠던걸 다시 찾아보니 gravity라는 좋은 속성이 있었다. (LinearLayout part에 있다)
이렇게 xml 파일의 뼈대를 세웠으면 그다음은 java파일의 이벤트를 설정해야한다.
핵심은 버튼의 클릭유무에따른 Onclick() 메소드를 이용하는것과, EditText의 텍스트값의 변화에따른 addTextChangedListener()를 이용하면된다.
addTextChangedListener() 라는것은 텍스트의 변화에따른 이벤트를 주는 API 이다. 이녀석은 text를 받기전, 받았을때, 받은후 로 3개에 동작을 줄수있다.
받기전과 받은후는 필요없고, 받았을때 동시에 동작할 것으로, TextView에 표시되는 바이트숫자를 변화시켜야한다.
따라서 이부분에 변화된 문자열을 받아 길이를 TextView의 setText인자에 넣어 TextView의 바이트숫자를 변화시켜주면된다.
OnClick 이벤트 메소드에는 Toast.makeText().show() 를 통해 버튼이눌렷을때 editText의 Text값을 토스트메세지로 보여주면된다.
마지막으로 닫기 버튼이 눌렷을때는, finish() 를 통해 종료시켰다.
버튼누르기전
버튼누른후
댓글남기기