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é !");

}

}