티스토리 뷰

Android/정리

알림 대화상자 띄우기

란텔 2016. 5. 28. 16:08

알림 대화상자는 마치 자바스크립트의 confirm함수와 같은 기능을 담당하여, 일방적으로 메세지를 보여주고, 예, 아니오, 같은 응답을 처리할 수 있다.


다음은 대화 상자를 띄워서 예를 누르면 액티비티를 종료하는 애플리케이션 코드이다.




레이아웃 xml 코드

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.choonie.broadcastreceiveractivity.DialogActivity">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:onClick="onClickCreateDialog"
        android:text="종료버튼" />


</RelativeLayout>



액티비티 java 코드

public class DialogActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
    }


    public void onClickCreateDialog(View v) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("알림");
        builder.setMessage("애플리케이션을 종료하시겠습니까?").setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        finish();
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();
                    }
                });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

}

AlertDialog 클래스 내부에 static 클래스로 존재하는 Builder의 인스턴스를 생성 후 이 Builder의 참조 변수가 가지고 있는 메서드를 통해 알림 다이얼로그에 대한 정의를 한 후 Builder클래스가 가지고 있는 create()메서드를 통해서 최종적으로 다이얼로그를 보여주는 show()를 호출한다. 



결과

보는 바와 같이 버튼을 누르면 알림메세지가 뜨고 YES를 누르면 액티비티를 종료한다.

Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday