본문 바로가기

개발/모바일

안드로이드 스튜디오 Lec3 알림창을 이용한 종료 버튼 및 리스트 보기

반응형
강의링크 : https://youtu.be/ukIG6_Jebqo

- 버튼 클릭 시 dialog를 생성.
- 리스트를 포함한 dialog
- yes/no 대답을 포함한 dialog
- dialog의 리스트 각 아이템에 대한 이벤트 처리


 MainActivity.java

 package com.example.han.tutorial3;


import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private String[] items = {"a", "b", "c"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// @listButton : 클릭 시 아이템 리스트를 dialog로 띄움
Button listButton = (Button) findViewById(R.id.listButton);

// listButton 클릭 시 이벤트 처리
listButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//dialog를 정의
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//dialog제목 설정
builder.setTitle("리스트");
// 아이템을 위에서 정의한 String의 배열 items로 설정한 후
// 각 아이템을 클릭 시 이벤트를 처리
builder.setItems(items, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface, int i){
// 각 아이템 이름을 담은 토스트를 만들어 띄움
Toast.makeText(getApplicationContext(), items[i], Toast.LENGTH_SHORT).show();
}
});
// dialog를 생성한 후 띄움
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});

// @exitButton : 클릭 시 어플리케이션을 종료할 건지 dialog로 되물음
Button exitButton = (Button) findViewById(R.id.exitButton);
exitButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("정말로 종료하시겠습니까?");
builder.setTitle("종료 알림창") // ***? builder.setTitle이 하는 역할이 뭐지...? 결국 제목은 밑에 alert.setTitle 껄로 나오는데..
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface .cancel();
}
});
AlertDialog alert = builder.create();
alert.setTitle("종료 알림");
alert.show();
}
});
}



}




반응형