ABOUT ME

-

Today
-
Yesterday
-
Total
-
choco@desktop:~/tistory
$ 정보처리기사 요점정리
1과목 2과목 3과목 4과목 5과목 실기

$ Linux Kernel
Power Management DVFS
  • 안드로이드 스튜디오 종료 버튼 만들기
    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


    댓글

Designed by Tistory.