본문 바로가기

개인공부

안드로이드 : 알림창 and 이벤트 발생

반응형

 

 

 

 

레이아웃 배치 창으로 돌아가서

위에 버튼의 이름을 리스트로 해주고 ID는 listButton으로 설정해준다

마찬가지로 밑에 쪽 번튼은 exitButton으로 설정해준다.

 

 

package org.techtown.alarm;

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.Button;
import android.widget.Toast;

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();
            }
        });
    }
}

메인 엑티비티에 다음과 같이 코딩해줍니다.

이는 리스트버튼을 눌렸을 경우 item 에 있는 리스트들을 보여주고

클릭하였을 경우 show함수를 통하여 출력해줍니다.

 

 

 

 

이제 종료 함수를 만들어 보겠습니다.

 

package org.techtown.alarm;

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.Button;
import android.widget.Toast;

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();
            }
        });
    }
}

 

마찬가지로 종료 함수도 만들어 보았습니다.

 

대표사진 삭제

 

사진 설명을 입력하세요.

다음으로는 각각의 함수를 하나식 살펴보겠습니다.

 

 private String[] items = {"망고 ", "토마토 ","포도"};

private 클래스안에 함수만 접근가능한 String 변수를 생성합니다.

Button listButton = (Button) findViewById(R.id.listButton);

listButton이라는 객체를 생성 그후 findViewById(XML파일을 찾기위한 함수) 로 파일을 찾은후 (Button)으로 캐스팅 한다. 안드로이드 버전에 따라 자동 변환 되는 것도 있습니다.

 

 @Override

오버라이드는 재정의하겠다는 의미로 sign신호입니다.

 

       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();
            }
        });
listButton.setOnClickListener(new View.OnClickListener(){

listButton에 이벤트를 추가해준다

 

 public void onClick(View v){

버튼을 클릭했을때에 대한 함수처리

builder.setTitle("리스트");

팝업창에 해당하는 제목부분 명시

 builder.setItems(items, new DialogInterface.OnClickListener() {

 

팝업창에 해당하는 리스트부분을 넣어준다.

Toast.makeText(getApplicationContext(),items[i],Toast.LENGTH_SHORT).show();

 

리스트안에 있는 내용을 클릭 했을때의 이벤트를 설정

Toast를 뛰우는것(잠시뛰우는것)

해당인덱스에 관한 내용을 정확하게 뛰어준다

 

         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();
            }
        });

 

Button exitButton = (Button) findViewById(R.id.exitButton);

UI에서 id를 가져온다음 버튼 객체를 만든다

 

 exitButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){

해당버튼을 눌렀을때 이벤트를 설정한다.

 

  AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

 

다이얼로그 빌더를 만들어 그곳으로 객체를 할당한다

(해당내용은 MainAcivity에 계속된다)

 

 builder.setMessage("정말로 종료하시겠습니까?");

해당빌더의 메세지를 출력합니다.

 builder.setTitle("종료 알림창")

제목을 설정합니다.

.setCancelable(false)

사용자가 임의적으로 종료불가능하게한다.

 

                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int i) {
                                finish();
                            }
                        })

 

 

Yes버튼을 만든다.

그리고 Yes버튼을 눌렀을때 이벤트 처리

(함수종료)

 

                        .setNegativeButton("No", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int i) {
                                dialog.cancel();
                            }
                        });

 

 

NO버튼을 만든다.

NO버튼을 눌럿을때 이벤트 처리

다이얼로그 취소한다.

 

 

  AlertDialog alert = builder.create();

 

다이얼로그의 객체를 빌더에서받는다.

alert.setTitle("종료 알림창");

 

다일로그의 제목을 정한다.

 alert.show();

이러한 다이얼로그가 보여줄수 있게 해준다.

 

 alert.show();
반응형