Android自定义Dialog的方法实例

Android自定义Dialog的方法实例
文章图片

Android自定义Dialog的方法实例
文章图片

因为公司需要不同样式的dialog,既有取消和确认键 又需要只有确认键的 并且系统自带dialog样式太丑 所以就自己做了个
【Android自定义Dialog的方法实例】接下来看代码:

/** * Created byon 2017/9/16. * 自定义Dialog */public class MyDialog extends Dialog {private Button yes; //确定按钮private Button no; //取消按钮private TextView titleTv; //消息标题文本private TextView messageTv; //消息提示文本private String titleStr; //从外界设置的title文本private String messageStr; //从外界设置的消息文本private View view; //确定文本和取消文本的显示内容private String yesStr, noStr; private onNoOnclickListener noOnclickListener; //取消按钮被点击了的监听器private onYesOnclickListener yesOnclickListener; //确定按钮被点击了的监听器/*** 设置取消按钮的显示内容和监听** @param str* @param onNoOnclickListener*/public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {if (str != null) {noStr = str; }this.noOnclickListener = onNoOnclickListener; }/*** 设置确定按钮的显示内容和监听** @param str* @param onYesOnclickListener*/public void setYesOnclickListener(String str, onYesOnclickListener onYesOnclickListener) {if (str != null) {yesStr = str; }this.yesOnclickListener = onYesOnclickListener; }public MyDialog(Context context) {super(context, R.style.MyDialog); }@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.mydialog); //按空白处不能取消动画setCanceledOnTouchOutside(false); //初始化界面控件initView(); //初始化界面数据initData(); //初始化界面控件的事件initEvent(); }/*** 初始化界面的确定和取消监听器*/private void initEvent() {//设置确定按钮被点击后,向外界提供监听yes.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (yesOnclickListener != null) {yesOnclickListener.onYesClick(); }}}); //设置取消按钮被点击后,向外界提供监听no.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (noOnclickListener != null) {noOnclickListener.onNoClick(); }}}); }/*** 初始化界面控件的显示数据*/private void initData() {//如果用户自定了title和messageif (titleStr != null) {titleTv.setText(titleStr); }if (messageStr != null) {messageTv.setText(messageStr); }//如果设置按钮的文字if (yesStr != null) {yes.setText(yesStr); }if (noStr != null) {no.setVisibility(View.VISIBLE); view.setVisibility(View.VISIBLE); no.setText(noStr); } else {no.setVisibility(View.GONE); view.setVisibility(View.GONE); }}/*** 初始化界面控件*/private void initView() {yes = (Button) findViewById(R.id.yes); no = (Button) findViewById(R.id.no); titleTv = (TextView) findViewById(R.id.title); messageTv = (TextView) findViewById(R.id.message); view = findViewById(R.id.view_dialog); }/*** 从外界Activity为Dialog设置标题** @param title*/public void setTitle(String title) {titleStr = title; }/*** 从外界Activity为Dialog设置dialog的message** @param message*/public void setMessage(String message) {messageStr = message; }/*** 设置确定按钮和取消被点击的接口*/public interface onYesOnclickListener {public void onYesClick(); }public interface onNoOnclickListener {public void onNoClick(); }}

Xml文件:

调用的方法:
myDialog = new MyDialog(activity); myDialog.setTitle("提示"); myDialog.setMessage("您输入的关键字未查询到信息,请重新输入"); myDialog.setYesOnclickListener("确定", new MyDialog.onYesOnclickListener() {@Overridepublic void onYesClick() {myDialog.dismiss(); }}); myDialog.show();

这是一个调用只含有确认键的方法,通过mydialog中传的str来进行判断,gone或者vs:
if (noStr != null) {no.setVisibility(View.VISIBLE); view.setVisibility(View.VISIBLE); no.setText(noStr); } else {no.setVisibility(View.GONE); view.setVisibility(View.GONE); }

调用俩个按键:
myDialog = new MyDialog(activity); myDialog.setTitle("指纹关闭确认"); myDialog.setMessage("确认关闭指纹登陆?"); myDialog.setYesOnclickListener("确定", new MyDialog.onYesOnclickListener() {@Overridepublic void onYesClick() {SharedPreferenceUtil.setInfoToShared("Z", "N"); myDialog.dismiss(); }}); myDialog.setNoOnclickListener("取消", new MyDialog.onNoOnclickListener() {@Overridepublic void onNoClick() {cbFingerprint.setChecked(true); myDialog.dismiss(); }}); myDialog.show();

总结
到此这篇关于Android自定义Dialog的文章就介绍到这了,更多相关Android自定义Dialog内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读