BÀI 90 - THIẾT KẾ DIALOG CẢNH BÁO 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é
<androidx.cardview.widget.CardView android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_margin="10dp"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffffff"
android:orientation="vertical">
<ImageView
android:id="@+id/a"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="#DA5F6A"
android:gravity="center"
android:padding="10dp"
android:scaleType="fitCenter"
android:src="@drawable/icon_warning"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/text_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/a"
android:layout_centerHorizontal="true"
android:layout_marginLeft="4dp"
android:layout_marginTop="20dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="20dp"
android:gravity="center_horizontal"
android:hint="Nội dung cảnh báo"
android:textColor="#ff000000"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_dialog"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_below="@+id/text_dialog"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:background="#DA5F6A"
android:gravity="center_vertical|center_horizontal"
android:text="OK"
android:textColor="#ffffffff"
tools:ignore="HardcodedText" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
Tạo một cái Class như này
public class DialogNotificationWarning {
public void ShowDialog(Activity activity, String message) {
Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.dialog_notification_warning);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
TextView tvMessage = dialog.findViewById(R.id.textview_dialogWarningNotification_message);
AppCompatButton btnOK = dialog.findViewById(R.id.button_dialogWarningNotification);
if (message.equals(null)) {
tvMessage.setVisibility(View.GONE);
} else {
tvMessage.setText(message);
}
btnOK.setOnClickListener(view -> dialog.cancel());
dialog.show();
}
}
Để sử dụng thì gọi nó ra như này !
@Override
public void onBackPressed() {
if (HasChanged) {
DialogNotificationWarning warning = new DialogNotificationWarning();
warning.ShowDialog(this, "Vì bạn đã thay đổi dữ liệu\nHãy ấn vào biểu tượng cập nhật trước khi thoát nhé !");
}
}