본문 바로가기

카테고리 없음

Toast

반응형

토스트 메시지는 화면에 잠깐 문자 메시지가 나타났다 사라지는 기능이다. 예를 들어, '버튼이 클릭되었습니다.' '파일을 저장하였습니다.' 와 같은 문구가 화면 상에 나타났다가 금방 사라지는 것이다. 


토스트 메시지는 다음의 두가지 종류의 정적 객체 생성 메소드를 사용하여 생성한다.


1. ToastMessageName.makeText(Context context, CharSequence text, int duration) 

2. ToastMessageName.makeText(Context context, int resId, int duration) 


전자는 문자열을 사용하는 것이고, 후자는 리소스에 문자열을 등록하여 id를 사용하는 것이다. 

makeText() 메소드를 사용하여 토스트 객체를 생성한 이후, show() 메소드를 사용하여 화면에 출력한다.  


ToastMessageName.makeText( , , ).show();

 

추가로, 프로그램 내부에서 뷰 객체 별로(이를 테면 TextView) setClickable(Boolean clickable) 메소드를 사용하여 해당 뷰에 대한 클릭 이벤트가 발생시킬 것인지에 대한 여부를 지정할 수 있다. 




아래는 토스트 메시지에 대한 예이다. 위젯들(버튼, 텍스트뷰)을 생성한 후에 setOn~() 메소드를 통해 리스너를 등록하고 내부 콜백 메소드를 구현한 두가지 방법에 대한 것이다. (안드로이드 스튜디오)



첫번째 방법은 텍스트뷰에 리스너를 등록한 뒤, 리스너 객체 생성과 동시에 콜백 메소드를 구현한다.

textView.setClickable(true);
textView.setOnLongClickListener(new View.OnLongClickListener(){

@Override
public boolean onLongClick(View v){
toast.makeText(getApplicationContext(), "Text요소를 길게 눌렀음", Toast.LENGTH_LONG).show();
return true;
}
});

두번째 방법은 텍스트뷰에 리스너를 등록한 뒤, 클릭된 화면 요소의 종류를 판별하여 구현하는 방법이다.


textView.setClickable(true);

textView.setOnClickListener(this);


@Override
public void onClick(View v){

if(v == textView){
Toast.makeText(getApplicationContext(), "textView를 클릭함", Toast.LENGTH_SHORT).show();
}

} 



<인용출처> 객체지향 원리로 배우는 안드로이드 프로그래밍, 박헌재 저 


* getApplicationContext() : Return the context of the single, global Application object of the current process.



반응형