BÀI 89 - THIẾT KẾ DIALOG XÁC NHẬN TRONG ANDROID
Mình sẽ thiết kế một cái Dialog giống mẫu trên nhe !
Đầu tiên, tạo một Layout như này... Bạn tự kiếm hình cho ImageView nhé
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_gravity="center"
android:gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="165dp"
android:layout_gravity="center"
app:cardCornerRadius="8dp"
app:cardElevation="15dp">
<TextView
android:id="@+id/textview_dialogConfirmNotification_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="14dp"
android:gravity="center"
android:hint="Tiêu đề"
android:textColor="@android:color/black"
android:textSize="20dp"
android:textStyle="bold"
tools:ignore="HardcodedText,SpUsage" />
<TextView
android:id="@+id/textview_dialogConfirmNotification_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:gravity="center"
android:hint="Nội dung thông báo"
android:textSize="14dp"
android:textStyle="bold"
tools:ignore="HardcodedText,SpUsage" />
</androidx.cardview.widget.CardView>
</LinearLayout>
<ImageView
android:id="@+id/imageView_dialogConfirmNotification_cancel"
android:src="@drawable/icon_cancel"
android:layout_gravity="center"
android:layout_marginEnd="45dp"
android:layout_marginTop="75dp"
android:layout_width="60dp"
android:layout_height="60dp"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/imageView_dialogConfirmNotification_ok"
android:src="@drawable/icon_ok"
android:layout_gravity="center"
android:layout_marginStart="50dp"
android:layout_marginTop="75dp"
android:layout_width="60dp"
android:layout_height="60dp"
tools:ignore="ContentDescription" />
</FrameLayout>
Tạo một cái Class như này
public class DialogNotificationConfirm {
public void ShowDialog(Activity activity, String title, String message, int action) {
Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.dialog_notification_confirm);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
TextView tvTitle = dialog.findViewById(R.id.textview_dialogConfirmNotification_title);
TextView tvMessage = dialog.findViewById(R.id.textview_dialogConfirmNotification_message);
ImageView imgCancel = dialog.findViewById(R.id.imageView_dialogConfirmNotification_cancel);
ImageView imgOK = dialog.findViewById(R.id.imageView_dialogConfirmNotification_ok);
if (title.equals(null)) {
tvTitle.setVisibility(View.GONE);
} else {
tvTitle.setText(title);
}
if (message.equals(null)) {
tvMessage.setVisibility(View.GONE);
} else {
tvMessage.setText(message);
}
imgOK.setOnClickListener(view -> {
if (action == 1) {
Action_1_ExitApplication(activity);
}
});
imgCancel.setOnClickListener(view -> dialog.cancel());
dialog.show();
}
private void Action_1_ExitApplication(Activity activity) {
activity.finish();
}
}
Để sử dụng thì gọi nó ra như này !
@Override
public void onBackPressed() {
DialogNotificationConfirm confirm = new DialogNotificationConfirm();
confirm.ShowDialog(this, "Khoan... dừng khoảng chừng 2s", "Có phải bạn muốn thoát ứng dụng không ?", 1);
}