Skip to content

SweetAlert for Android, a beautiful and clever alert dialog

License

Notifications You must be signed in to change notification settings

taimoorsultani/android-sweetalert2

Repository files navigation

Sweet Alert Dialog

SweetAlert for Android, a beautiful and clever alert dialog Inspired by JavaScript SweetAlert

A very big thanks to

The original project belongs to pedant, can be viewed here pedant/sweet-alert-dialog.

F0RIS also has added major contribution, which can be view here F0RIS/sweet-alert-dialog.

This is the most advanced and contemporary fork of the apparently dead project

Added:

  • Ability to set custom view
  • More convenient interface to bind listeners (like in AlertDialog)
  • Third neutral button with own listener, colors, methods and etc.
  • Ability to disable buttons
  • Ability to set buttons stroke width
  • Dark style of dialogs
  • Ability to make dialogs without buttons
  • Support of HTML tags
  • Ability to set text size
  • Ability to set buttons color

Some screenshots of the new features:

Known issues:

  • Bug with buttons height if custom view too big and need scrollview
  • Buttons can handle only one line strings

Android Arsenal

Preview

image

Setup

The simplest way to use Sweetalert is to add the library as aar dependency to your build.

Maven

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.github.taimoorsultani</groupId>
    <artifactId>android-sweetalert2</artifactId>
    <version>2.0.2</version>
</dependency>

Gradle

allprojects {
	repositories {
		maven { url 'https://jitpack.io' }
	}
}

dependencies {
    implementation 'com.github.taimoorsultani:android-sweetalert2:2.0.2'
}

Usage

Show material progress

Sweetalert pDialog = new Sweetalert(this, Sweetalert.PROGRESS_TYPE);
pDialog.getProgressHelper().setBarColor(Color.parseColor("#A5DC86"));
pDialog.setTitleText("Loading");
pDialog.setCancelable(false);
pDialog.show();

image

You can customize progress bar dynamically with materialish-progress methods via Sweetalert.getProgressHelper():

  • resetCount()
  • isSpinning()
  • spin()
  • stopSpinning()
  • getProgress()
  • setProgress(float progress)
  • setInstantProgress(float progress)
  • getCircleRadius()
  • setCircleRadius(int circleRadius)
  • getBarWidth()
  • setBarWidth(int barWidth)
  • getBarColor()
  • setBarColor(int barColor)
  • getRimWidth()
  • setRimWidth(int rimWidth)
  • getRimColor()
  • setRimColor(int rimColor)
  • getSpinSpeed()
  • setSpinSpeed(float spinSpeed)

thanks to the project materialish-progress and @croccio participation.

more usages about progress, please see the sample.

A basic message:

new Sweetalert(this)
    .setTitleText("Here's a message!")
    .show();

A title with a text under:

new Sweetalert(this)
    .setTitleText("Here's a message!")
    .setContentText("It's pretty, isn't it?")
    .show();

A error message:

new Sweetalert(this, Sweetalert.ERROR_TYPE)
    .setTitleText("Oops...")
    .setContentText("Something went wrong!")
    .show();

A warning message:

new Sweetalert(this, Sweetalert.WARNING_TYPE)
    .setTitleText("Are you sure?")
    .setContentText("Won't be able to recover this file!")
    .setConfirmText("Yes,delete it!")
    .show();

A success message:

new Sweetalert(this, Sweetalert.SUCCESS_TYPE)
    .setTitleText("Good job!")
    .setContentText("You clicked the button!")
    .show();

A message with a custom icon:

new Sweetalert(this, Sweetalert.CUSTOM_IMAGE_TYPE)
    .setTitleText("Sweet!")
    .setContentText("Here's a custom image.")
    .setCustomImage(R.drawable.custom_img)
    .show();

A message with a custom view:

final EditText editText = new EditText(this);
new Sweetalert(this, Sweetalert.NORMAL_TYPE)
        .setTitleText("Custom view")
        .setConfirmText("Ok")
        .setCustomView(editText)
        .show();

Different ways to bind the listener to button:

new Sweetalert(this, Sweetalert.WARNING_TYPE)
    .setTitleText("Are you sure?")
    .setContentText("Won't be able to recover this file!")
    .setConfirmText("Yes,delete it!")
    .setConfirmClickListener(new Sweetalert.OnSweetClickListener() {
        @Override
        public void onClick(Sweetalert sDialog) {
            sDialog.dismissWithAnimation();
        }
    })
    .setCancelButton("Cancel", new Sweetalert.OnSweetClickListener() {
        @Override
        public void onClick(Sweetalert sDialog) {
            sDialog.dismissWithAnimation();
        }
    })
    .show();

Disable button

final Sweetalert disabledBtnDialog = new Sweetalert(this, Sweetalert.NORMAL_TYPE)
        .setTitleText("Title")
        .setContentText("Disabled button dialog")
        .setConfirmText("Confirm")
        .setCancelText("Cancel")

disabledBtnDialog.setOnShowListener(new DialogInterface.OnShowListener() {
    @Override
    public void onShow(DialogInterface dialog) {
        disabledBtnDialog.getButton(Sweetalert.BUTTON_CONFIRM).setEnabled(false);
    }
});
disabledBtnDialog.show();

Change the dialog style upon confirming:

new Sweetalert(this, Sweetalert.WARNING_TYPE)
    .setTitleText("Are you sure?")
    .setContentText("Won't be able to recover this file!")
    .setConfirmText("Yes,delete it!")
    .setConfirmClickListener(new Sweetalert.OnSweetClickListener() {
        @Override
        public void onClick(Sweetalert sDialog) {
            sDialog
                .setTitleText("Deleted!")
                .setContentText("Your imaginary file has been deleted!")
                .setConfirmText("OK")
                .setConfirmClickListener(null)
                .changeAlertType(Sweetalert.SUCCESS_TYPE);
        }
    })
    .show();

more android tech shares: pedant.cn