English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
The Android native dialog is too rigid. I saw this effect very nice before but have never used it. Today I recommended it to someone else, and he encountered a lot of problems after importing it, with many errors and no library project. So I took a serious look at it, and it's an AndroidStudio project, and it also depends on materialish-The progress project is also an AS project. So I plan to create an eclipse version and integrate these two projects into a library project called XAlertDialogLibrary. When using it, just import it as a library into the project.
The effect is as follows
It is very simple to use, the test code is as follows:
MainActivity.java
public class MainActivity extends Activity implements View.OnClickListener { private int i = -1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.basic_test).setOnClickListener(this); findViewById(R.id.under_text_test).setOnClickListener(this); findViewById(R.id.error_text_test).setOnClickListener(this); findViewById(R.id.success_text_test).setOnClickListener(this); findViewById(R.id.warning_confirm_test).setOnClickListener(this); findViewById(R.id.warning_cancel_test).setOnClickListener(this); findViewById(R.id.custom_img_test).setOnClickListener(this); findViewById(R.id.progress_dialog).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.basic_test: // default title "Here's a message!" SweetAlertDialog sd = new SweetAlertDialog(this); sd.setCancelable(true); sd.setCanceledOnTouchOutside(true); sd.show(); break; case R.id.under_text_test: new SweetAlertDialog(this) .setContentText("It's pretty, isn't it&"63; .show(); break; case R.id.error_text_test: new SweetAlertDialog(this, SweetAlertDialog.ERROR_TYPE) .setTitleText("Oops...") .setContentText("Something went wrong!") .show(); break; case R.id.success_text_test: new SweetAlertDialog(this, SweetAlertDialog.SUCCESS_TYPE) .setTitleText("Good job!") .setContentText("You clicked the button!") .show(); break; case R.id.warning_confirm_test: new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE) .setTitleText("Are you sure&"63; .setContentText("Won't be able to recover this file!") .setConfirmText("Yes, delete it!") .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { @Override public void onClick(SweetAlertDialog sDialog) { // reuse previous dialog instance sDialog.setTitleText("Deleted!") .setContentText("Your imaginary file has been deleted!") .setConfirmText("OK") .setConfirmClickListener(null) .changeAlertType(SweetAlertDialog.SUCCESS_TYPE); } ) .show(); break; case R.id.warning_cancel_test: new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE) .setTitleText("Are you sure&"63; .setContentText("Won't be able to recover this file!") .setCancelText("No, cancel plx!") .setConfirmText("Yes, delete it!") .showCancelButton(true) .setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() { @Override public void onClick(SweetAlertDialog sDialog) { // reuse the previous dialog instance, keep the widget user state, reset them if needed sDialog.setTitleText("Cancelled!") .setContentText("Your imaginary file is safe :)") .setConfirmText("OK") .showCancelButton(false) .setCancelClickListener(null) .setConfirmClickListener(null) .changeAlertType(SweetAlertDialog.ERROR_TYPE); // or you can create a new SweetAlertDialog to show /* sDialog.dismiss(); new SweetAlertDialog(SampleActivity.this, SweetAlertDialog.ERROR_TYPE) .setTitleText("Cancelled!") .setContentText("Your imaginary file is safe :)") .setConfirmText("OK") .show();*/ } ) .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { @Override public void onClick(SweetAlertDialog sDialog) { sDialog.setTitleText("Deleted!") .setContentText("Your imaginary file has been deleted!") .setConfirmText("OK") .showCancelButton(false) .setCancelClickListener(null) .setConfirmClickListener(null) .changeAlertType(SweetAlertDialog.SUCCESS_TYPE); } ) .show(); break; case R.id.custom_img_test: new SweetAlertDialog(this, SweetAlertDialog.CUSTOM_IMAGE_TYPE) .setTitleText("Sweet!") .setContentText("Here's a custom image.") .setCustomImage(R.drawable.custom_img) .show(); break; case R.id.progress_dialog: final SweetAlertDialog pDialog = new SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE) .setTitleText("Loading"); pDialog.show(); pDialog.setCancelable(false); new CountDownTimer(800 * 7, 800) { public void onTick(long millisUntilFinished) { // you can change the progress bar color by ProgressHelper every 800 millis i++; switch (i) { case 0: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.blue_btn_bg_color)); break; case 1: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_deep_teal_)50)); break; case 2: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.success_stroke_color)); break; case 3: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_deep_teal_)20)); break; case 4: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.material_blue_grey_)80)); break; case 5: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.warning_stroke_color)); break; case 6: pDialog.getProgressHelper().setBarColor(getResources().getColor(R.color.success_stroke_color)); break; } } public void onFinish() { i = -1; pDialog.setTitleText("Success!") .setConfirmText("OK") .changeAlertType(SweetAlertDialog.SUCCESS_TYPE); } }.start(); break; } } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFF" xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout android:layout_width="match_parent" android:paddingBottom=""10dp" android:layout_height="wrap_content"> <ImageView android:id="@"+id/logo_img" android:layout_width="180dp" android:layout_height="wrap_content" android:src="@drawable"/logo_big" android:layout_marginTop="10dp" android:layout_marginBottom=""15dp" android:layout_centerHorizontal="true" android:contentDescription="@string"/app_name"/> <TextView android:id="@"+id/txt_0" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/logo_img" android:layout_marginLeft="15dp" android:text="show material progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_0" android:id="@"+id/progress_dialog" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_1" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/progress_dialog" android:layout_marginLeft="15dp" android:text="A basic message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_1" android:id="@"+id/basic_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_2" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/basic_test" android:layout_marginLeft="15dp" android:text="A title with a text under" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_2" android:id="@"+id/under_text_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_3" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/under_text_test" android:layout_marginLeft="15dp" android:text="show error message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_3" android:id="@"+id/error_text_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_4" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/error_text_test" android:layout_marginLeft="15dp" android:text="A success message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_4" android:id="@"+id/success_text_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_5" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/success_text_test" android:layout_marginLeft="15dp" android:text="A warning message, with a listener bind to the Confirm"-button..." android:layout_width="200dp" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_5" android:id="@"+id/warning_confirm_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_6" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/warning_confirm_test" android:layout_marginLeft="15dp" android:text="A warning message, with listeners bind to Cancel and Confirm button..." android:layout_width="200dp" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_6" android:id="@"+id/warning_cancel_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> <TextView android:id="@"+id/txt_7" android:layout_alignLeft="@id/logo_img" android:layout_below="@id/warning_cancel_test" android:layout_marginLeft="15dp" android:text="A message with a custom icon" android:layout_width="200dp" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="15dp" android:textColor="#797979"/> <Button android:layout_centerHorizontal="true" android:layout_below="@id/txt_7" android:id="@"+id/custom_img_test" style="@style/dialog_blue_button" android:layout_margin="10dp" android:text="Try me!"/> </RelativeLayout> </ScrollView>
XAlertDialogLibrary (eclipse): Click here to download
That is all for the Android dialog sweet-Alert-This is the collection of materials for dialog, more relevant materials will be added later, thank you all for your support to this site!