안녕하세요 오늘은 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를 주석 처리해줘야 에러가 안 뜹니다. 주석처리를 하지 않을 경우 레이아웃이
나 타지 않고 바로 앱이 종료되는 현상이 나타납니다.
똑같이 따라하셨으면 밑에 사진처럼 나옵니다 확인 버튼을 누르면 앱이 종료되고 취소를 누를 경우
다이얼로그가 닫힙니다.
'Android Studio' 카테고리의 다른 글
안드로이드 스튜디오 앱 중복 실행 방지하기 (0) | 2020.02.13 |
---|---|
안드로이드 스튜디오 error: failed processing manifest. (0) | 2020.02.10 |
안드로이드 스튜디오 Static interface methods are only supported starting with Android N (--min-api 24): void butterknife.Unbinder.lambda$static$0() (0) | 2020.01.17 |
안드로이드 스튜디오 Google Play의 대상 API 레벨 요구사항 충족하기 (0) | 2020.01.06 |
안드로이드 스튜디오 다국어 지원 (언어설정) (2) | 2020.01.06 |