공부/안드로이드

[안드로이드] 토스트, 스낵바, 알림 대화상자

ghhong 2021. 8. 11. 09:41

토스트(Toast)

토스트는 간단한 메시지를 잠깐 보여줬다가 없어지는 뷰로, 앱 화면에 종속되지 않는다.

앱 실행 중간에 디버깅을 위한 메시지를 출력하고 싶은 경우에 Log클래스를 이용해 콘솔에 메시지를 출력할 수 있고, 토스트를 사용해 화면에 출력할 수 있다.

실행영역보다 앞쪽에 보이는 뷰이기 때문에 앱이 화면에 보이지 않는 상태에서도 토스트가 보일 수 있다.

 

Toast.makeText(Context context, String message, int duration).show();

토스트 만들기

 

토스트 위치 바꾸는 메소드 : setGravity, setMargin

토스트 모양 바꾸는 메소드 : setView를 사용하여 토스트 객체에 XML레이아웃을 설정한다.

 

스낵바(Snackbar)

스낵바는 아래쪽에 잠깐 올라왔다가 사라지는 뷰다.

토스트처럼 사용하지만 앱의 화면 안에서 보인다는 차이가 있다.

Snackbar.make(v, "스낵바입니다.", Snackbar.LENGTH_LONG).show();

스낵바 만들기

Snackbar의 make 메소드를 호출할 때 첫 번째 파라미터로 뷰 객체를 넣어주어야 한다.

 

알림 대화상자(AlertDialog)

알림 대화상자는 사용자에게 어떤 내용을 알려주거나 예, 아니오 버튼을 선택하도록 만들고 싶을 때 사용한다.

AlertDialog 객체를 만들고 show 메소드를 이용해 화면에 표시한다.

AlertDialog 객체를 만들 때는 AlertDialog.Builder 객체를 사용한다.

알림 대화상자에는 타이틀, 안내 메시지, 아이콘, 예, 아니오 버튼 등을 설정할 수 있다.

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);

builder.setPositiveButton("확인", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) {
        String message = "확인 버튼이 눌렸습니다. ";
        …중략

    }
});

AlertDialog dialog = builder.create(); 
dialog.show();