Android 对话框sweet-alert-dialog
程序员文章站
2024-03-05 12:54:30
android原生的dialog太生硬了,之前看到了这个效果非常不错但是没有用过,今天给别人推荐使用,他遇到了问题,导入后错误非常多,也没有库工程。于是自己认真看了一下,这...
android原生的dialog太生硬了,之前看到了这个效果非常不错但是没有用过,今天给别人推荐使用,他遇到了问题,导入后错误非常多,也没有库工程。于是自己认真看了一下,这是个androidstudio的工程,并且里面还依赖于materialish-progress工程,也是个as的工程。于是打算弄一个eclipse的版本并且将这两个工程融合在一起作为一个库工程xalertdialoglibrary。使用时将其作为库导入项目中即可。
效果如下
使用起来非常简单,测试代码如下:
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?") .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?") .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?") .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 previous dialog instance, keep widget user state, reset them if you need sdialog.settitletext("cancelled!") .setcontenttext("your imaginary file is safe :)") .setconfirmtext("ok") .showcancelbutton(false) .setcancelclicklistener(null) .setconfirmclicklistener(null) .changealerttype(sweetalertdialog.error_type); // or you can new a 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):点此下载
以上就是android 对话框sweet-alert-dialog 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!