티스토리 뷰
안드로이드 Toast 사용방법, 스마트폰 클릭좌표 출력
안드로이 앱을 개발하다 보면 중간 중간에 값이 어떻게 변하고 있는지를 체크하기 위해서 디버깅 과정을 하는데요.
이 때 값을 체크하는 간단한 방법으로 Toast(토스트)라는게 있습니다.
Toast 명령은 프로그램 개발에 있어서 꼭 알아두어야 할 기능이지요.
저는 Toast 를 쉽게 사용하기 위해 toastShort() 함수와 toastLong() 함수를 만들어 사용하고 있습니다.
우선 toast를 사용하기 위해 전역 변수로 2줄을 삽입합니다.
public class ProjectName extends Activity {
Toast mToast = null; //전역변수로 선언 ①
String mToastStr; //전역변수로 선언 ②
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
void toastShort() { //③
if(mToast == null) {
mToast = Toast.makeText(ProjectName.this, mToastStr, Toast.LENGTH_SHORT);
} else {
mToast.setText(mToastStr);
}
mToast.show();
}
void toastLong() { //④
if(mToast == null) {
mToast = Toast.makeText(ProjectName.this, mToastStr, Toast.LENGTH_LONG);
} else {
mToast.setText(mToastStr);
}
mToast.show();
}
public boolean onTouchEvent(MotionEvent event) {
float x, y;
x = event.getX();
y = event.getY();
mToastStr = "X =" + x + " Y = " + y; //출력할 메시지를 mToastStr에 작성 ⑤
toastShort(); //짧은 Toast 메시지 출력 ⑥
toastLong(); //긴 Toast 메시지 출력 ⑦
}
위의 소스에서 맨 위쪽에 있는 ①번과 ②번은 프로젝트 전역에서 사용이 가능하도록 프로젝트 Activity 맨 위쪽에 선언해 둡니다.
짧은 toast 문과 긴 toast 문을 아무곳에서나 출력이 가능하도록 ③번과 ④번처럼 toastShort() 함수와 toastLong() 함수를 만들어둡니다.
짧은 toast 문을 출력하고자 할 때는 toastShort() 함수를 호출하면 되고,
긴 toast 문을 출력하고자 할 때는 toastLong() 함수를 호출하면 됩니다.
toast 함수를 호출하기 전에 toast로 출력하고자 하는 문장을 ⑤번과 같이 mToastStr에 작성해 둡니다.
그런다음 toastShort() 함수나 toastLong() 함수를 호출하면 toast 메시지가 출력됩니다.
toastShort() 함수나 toastLong() 함수의 내용을 보면...
만약 toast 메시지가 없으면(null 이면)
mToast = Toast.makeText(ProjectName.this, mToastStr, Toast.LENGTH_SHORT); 를 실행하고,
그렇지 않으면(toast 메시지를 출력중에 있다면)
mToast.setText(mToastStr); 를 실행합니다.
그런 다음 mToast.show(); 문장으로 toast를 출력합니다.
이렇게 되면 toast 메시지가 출력중에 있어도, 그렇지 않은 경우에도 관계없이 사용이 가능합니다.
위의 예제는 스마트폰에서 임의의 위치를 클릭했을 때 클릭한 X좌표와 Y좌표를 출력하는 예제입니다.
onTouchEvent에서 (MotionEvent event)의 값을 참조해 출력하는 예제입니다.
정리하면...
1. 전역변수로 ①번과 ②번을 선언합니다.
Toast mToast = null; //전역변수로 선언 ①
String mToastStr; //전역변수로 선언 ②
2. toastShort() 함수와 toastLong() 함수를 ③번과 ④번처럼 작성해 둡니다.
3. toast 문장을 출력하고자 하는 곳에서 ⑤번과 같이 mToastStr에 출력할 문장을 작성합니다.
4. toast 문장 출력을 위해 ⑥번이나 ⑦번처럼 toastShort() 함수 또는 toastLong() 함수를 호출합니다.