[Android] Toast Android 2011. 12. 13. 14:01

토스트는 안드로이드의 시스템 차원에서 제공하는 팝업이다.

뭐.. 볼륨이 조절 되었다던가.. 메세지가 정상 처리 되었다거나.. 등등의 경우에 이용되고, 디버깅 용으로도 종종 이용이 된다.

이것들은 특정 시간이 지나면 자동으로 사라지며 사용자 작업에 대해서 방해 하지 않는다.

사용방법은 다음과 같다.

먼저 3개의 버튼을 만들고

<Button
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/btn1"
     android:text="1번"
 />
 <Button
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/btn2"
     android:text="2번"
 />
 <Button
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/btn3"
     android:text="3번"
 />
java 파일 상에서 다음과 같은 소스 코드를 넣는다.

package imageview.test;

import android.app.Activity;
import android.os.*;
import android.view.*;
import android.widget.*;

public class ImageViewActivity extends Activity {
    /** Called when the activity is first created. */
 
 @Override   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViewById(R.id.btn1).setOnClickListener(listener);
        findViewById(R.id.btn2).setOnClickListener(listener);
        findViewById(R.id.btn3).setOnClickListener(listener);
    }
 
 Button.OnClickListener listener = new Button.OnClickListener(){
  public void onClick(View v)
  {
   switch(v.getId())
   {
    case R.id.btn1 :
     Toast.makeText(ImageViewActivity.this, "잠깐 뿅~", Toast.LENGTH_SHORT).show();
     break;
    case R.id.btn2 :
     Toast.makeText(ImageViewActivity.this, "오래 뿅~", Toast.LENGTH_LONG).show();
     break;
    case R.id.btn3 :
     LinearLayout linear = (LinearLayout)View.inflate(ImageViewActivity.this, R.layout.main, null);
     Toast toast = new Toast(ImageViewActivity.this);
     toast.setView(linear);
     toast.show();
     break;
   }
  }
 };
}
각기 버튼을 눌러 보면 약 2초, 4초 후에 사라지며,

맨 마지막 것은 현재 화면에 나온 것들을 Toast로 보여준다. 물론 이 역시 약간의 시간이 지나면 사라진다.