SW개발/안드로이드 스튜디오

안드로이드 스튜디오 종료 버튼 만들기

초코쨔응 2019. 1. 21. 13:00

19/01/21


안드로이드 스튜디오 종료 버튼 구현하기


My_Application_2 프로젝트를 empty activity로 만듭니다.

그리고 res > layout > activity_main.xml에 들어가서 button을 2개 만듭니다.



위쪽의 버튼은 ID를 listButton, text에는 리스트라고 이름을 지어줍니다. 아래 버튼은 ID를 exitButton, text는 종료라고 이름을 써줍니다.



java > com.example.student.myapplication_2 > MainActivity 에 item과 버튼 동작을 작성해줍니다.

먼저 리스트를 눌렀을 때 나타나는 동작을 먼저 지정해줍니다. (** import 다 되었는지 항상 확인! 에러가 뜨면 오타가 없는지 한 글자씩 확인!!)


# MainActivity.java

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

public class MainActivity extends AppCompatActivity {
private String[] items = {"망고 쥬스", "토마토 쥬스", "포도 쥬스"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button listButton = (Button) findViewById(R.id.listButton);
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();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});
}
}

그러면 리스트를 눌렀을 때 다음과 같이 과일 주스 목록이 뜨는 것을 볼 수 있습니다.



종료 버튼을 구현하기 위해 다음과 같이 작성합니다.


# MainActivity.java


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

public class MainActivity extends AppCompatActivity {
private String[] items = {"망고 쥬스", "토마토 쥬스", "포도 쥬스"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button listButton = (Button) findViewById(R.id.listButton);
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();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
});

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);
builder.setMessage("정말로 종료하시겠습니까?");
builder.setTitle("종료 알림창")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.setTitle("종료 알림창");
alert.show();
}
});
}
}

종료 버튼을 누른 경우, 종료하시겠습니까? 라는 알림창이 뜨고, No 버튼을 누르면 어플리케이션 화면으로, Yes 버튼을 누른 경우 어플리케이션이 종료됩니다.




강의자료

https://youtu.be/ukIG6_Jebqo


다른 코드 참고

http://int-num.tistory.com/36