[Android Tip] Toast.makeText() 사용시 자주하는 실수

토스트 메시지를 사용할 때, 요즘엔 자주하지 않지만, 
예전에 자주하던 실수가 있었습니다. 크게보면 2가지입니다.


1. String /  String Resource 대신에 int형 변수를 넣는다.
  - CharSequence 또는 String resource 를 넣어야 한다.
 

2. .show()를 하지 않는다.
  - 쇼(show())를 하지않으면 화면에 출력되지 않는다.

 
지금보면 당연한 것들인데 당시에는 엄청나게 까먹고 지나가던 거죠.
실제로 코딩하다보면 에러한번 띄우고 난 다음에야, "아 맞다!" 라고 하는 경우도 허다하죠.




 출력할 메시지 위치에 들어갈 수 있는 것들

static Toast makeText(Context context, int resId, int duration)
Make a standard toast that just contains a text view with the text from a resource.
static Toast makeText(Context context, CharSequence text, int duration)
Make a standard toast that just contains a text view.

토스트 메시지를 만들때는 위의 두 메소드를 많이 사용합니다.

위의 두 메소드를 보면,
첫번째 메소드는 순서대로 Context, ResourceId, Duration 을 입력받고
두번째 메소드는 순서대로 Context, CharacterSequence, Duration 을 입력받습니다.

공통적인 것들을 제외하고 실제 출력될 내용을 이루는 부분은 ResourceId 와 CharacterSequence 입니다.
여기서 Resource Id 는 R.string.아이디 로 접근 가능한,  string.xml에(res/values에  위치) 미리 정의된 스트링 리소스를 말하고, CharacterSequence(e.g. either String or StringBuilder)는 스트링 류를 말하죠.

int형 변수를 텍스트의 위치에 넣어도 에러가 나지 않는건 스트링 리소스라고 생각을 해버리기 때문이죠.
요 실수 정말 자주 할 수 있는 녀석입니다.


결론
1. Character Sequence 를 넣는다.
2. R.string.아이디 로 접근 가능한 String Resource 를 넣는다.









  .show()를 하자!

Toast.makeText(컨텍스트, 스트링리소스/캐릭터시퀀스, 실행시간) 을 하고난 뒤에는 꼭 .show(); 를 해주어야 한다.



이런식으로 작성이 되어야 합니다. 쇼를 하지 않는다면 화면에 보여지지 않고, 데이터만 입력해 놓은 꼴이지요.
전 처음에 이놈을 안해서 몇시간씩 헤매기도 했었습니다. T^T 다른 분들은 저같은 상황이 없었으면 좋겠네요 크흙...

이 놈외에도, 알럿다이얼로그등도 꼭 show() 를 해야 합니다.... 잊지마세요 ㅋ









'Android > Toast' 카테고리의 다른 글

[Android Tip] Toast.makeText() 사용 / Toast 사용  (1) 2011.05.11
Posted by croute

댓글을 달아 주세요

  1. BlogIcon 감사 2013.08.09 18:29  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋㅋ이런 간단한... 감사합니다!^^