티스토리 뷰

 

 

안드로이드 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() 함수를 호출합니다.

 

 

댓글