안드로이드 스튜디오 back key로 종료 Custom dialog 띄우기

안녕하세요 오늘은 back key를 이용해 종료 커스텀 다이얼로그를 띄우겠습니다.

 

 

일단 back key를 누를 시 띄울 custom dialog를 만들겠습니다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <LinearLayout
        android:layout_width="280dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:orientation="vertical">

        <TextView
            android:id="@+id/mian_label"
            android:layout_width="266dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="20dp"
            android:gravity="center"
            android:text="종료하시겠습니까?"
            android:textSize="25dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="100dp">

            <Button
                android:id="@+id/backbtn"
                android:layout_width="140dp"
                android:layout_height="54dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:padding="11dp"
                android:background="#E91E63"
                android:text="취소"
                android:textAllCaps="false"
                android:textSize="20dp" />

            <Button
                android:id="@+id/exitbtn"
                android:layout_width="148dp"
                android:layout_height="54dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:padding="11dp"
                android:text="확인"
                android:background="#03A9F4"
                android:textAllCaps="false"
                android:textSize="20dp" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

 

필요시 변경하면 됩니다 간단하게 만들겠습니다 완성은 밑에 사진처럼 나옵니다.

이제 back key를 눌렀을 때 위에 레이아웃이 다이얼로그로 나오게 코딩하겠습니다.

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }




    @Override
    public void onBackPressed() {
//        super.onBackPressed();
        final Dialog dialog = new Dialog(MainActivity.this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.custom_activity);
        dialog.show();
        Button button = (Button)dialog.findViewById(R.id.backbtn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        Button button1 = (Button)dialog.findViewById(R.id.exitbtn);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();

            }
        });
    }


}

onBackPressed를 이용해 back key를 지정하고 그 안에 미리 만들어둔 레이아웃을 설정 후 

확인 버튼과 취소 버튼을 clicklistener를 통해 지정해줍니다.

 

super.Backpressed를 주석 처리해줘야 에러가 안 뜹니다. 주석처리를 하지 않을 경우 레이아웃이

나 타지 않고 바로 앱이 종료되는 현상이 나타납니다.

 

 

똑같이 따라하셨으면 밑에 사진처럼 나옵니다 확인 버튼을 누르면 앱이 종료되고 취소를 누를 경우

다이얼로그가 닫힙니다.

 

 

실행결과

 

 

 

댓글

Designed by JB FACTORY