[안드로이드 스튜디오] 3. 알림창을 이용한 종료버튼 만들기
1. 새 프로젝트를 만들고, layout에 들어가 두개의 버튼을 만들어 줍니다.
하나는 리스트, 하나는 종료 버튼입니다.
2. 리스트 버튼과 관련한 코딩을 해줍니다.
리스트에 들어갈 내용인 각각의 주스에 대해 명시합니다.
3. 리스트 버튼을 눌렀을 때에 대한 이벤트를 처리합니다.
(코드분석)
Button listButton = (Button)findViewById(R.id.listButton);
// 리스트버튼에 대한 정보를 가져와서 그것을 버튼 객체로 만들어준다. List버튼으로서 그 객체가 저장된다.
listButton.setOnClickListener(new View.OnClickListener() {
// 버튼을 눌렀을때 이벤트가 실행될 수 있도록 리스트버튼의 이벤트를 추가한다.
@Override
public void onClick(View v){
// 다음과 같이 이 버튼 클릭했을때의 실행되는 함수부분이다.
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("리스트");
// 팝업창을 띄울 때 그것의 제목을 "리스트"로 한다.
builder.setItems(items, new DialogInterface.OnClickListener() {
// 팝업창에 해당하는 리스트 내용을 넣어준다.
@Override
public void onClick(DialogInterface dialogInterface, int i){
// 리스트 안에 있는 내용을 클릭했을 때의 함수부분을 처리한다.
Toast.makeText(getApplicationContext(), items[i], Toast.LENGTH_SHORT).show();
// Toast를 띄우게 한다. 정확히하면, 인덱스를 받아서 해당 인덱스에 해당하는 자신이 클릭한 내용을 Toast로서 띄우게 한다.}
});
AlertDialog alertDialog = builder.create();
// Dialog에 해당하는 객체를 할당해준다.
alertDialog.show();
// Dialog를 보여준다.
}
});
4. 종료버튼을 눌렀을때 대한 이벤트를 처리합니다.
Button exitButton = (Button) findViewById(R.id.exitButton);
exitButton.setOnClickListener(new View.OnClickListener(){
//하나의 이벤트를 추가한다
@Override
public void onClick(View v){
//클릭하였을때 이 함수가 실행한다
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//메인 액티비티에 종속 되도록 Dialog를 할당한다.
builder.setMessage("정말로 종료하시겠습니까?");
//알림창으로 뜰때 이 메시지로 뜨게 된다.
builder.setTitle("종료 알림창");
builder.setCancelable(false);
//사용자가 임의적으로 종료할 수 없게한다.
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
// "Yes" 버튼을 설정한다.
@Override
public void onClick(DialogInterface dialog, int i){
// "Yes" 버튼이 클릭 되었을때,
finish();
//프로그램이 종료된다.
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener(){
//"No" 버튼을 설정한다.
@Override
public void onClick(DialogInterface dialog, int i){
//"No" 버튼이 클릭되었을때
dialog.cancel();
//dialog 창이 없어지게 한다.
}
});
AlertDialog alert = builder.create();
//Dialog 창을 만들어준다.
alert.setTitle("종료 알림창");
alert.show();
//dialog를 보여주게한다.
}
});