首页 > 编程知识 正文

android 单例模式(android 创建单例对话框_Android自定义单例AlertDialog详解)

时间:2023-05-03 18:18:20 阅读:123936 作者:177

Android开发并处理错误消息时,往往会以诊断程序的形式显示错误消息,但每次更新一个诊断程序很麻烦,程序开销也会增加。 今天分享一个定制示例警报诊断程序的公共类警报诊断程序{关注的面包隐私上下文}关注的面包隐私上下文; 在意的面包隐私诊断诊断程序; 在意的面包pprivate LinearLayout lLayout_bg; 在意的面包pprivate TextView txt_title; 在意的面包pprivate TextView txt_msg; 在意的面包pprivate Button btn_neg; 在意的面包pprivate Button btn_pos; 在意的面包pprivate ImageView img_line; 在意的面包隐私显示显示器; 在意的面包私密布尔显示标题=false; 在意的面包私密布尔showmsg=false; 在意的面包pprivatebooleanshowposbtn=false; 在意的面包pprivatebooleanshownegbtn=false; 感兴趣的面包ppublicstaticalertdialoggetinstance (上下文)感兴趣的面包pif (警报诊断==null )感兴趣的面包psynchronized (警报诊断) 在意的面包palertdialog=newalertdialog ) context ).builder ); 在意的面包p}在意的面包p}在意的面包p}在意的面包p返回警报诊断程序; 在意的面包p )在意的面包ppublicalertdialog (上下文上下文) )在意的面包pthis.context=context; 在意的面包pwindowmanagerwindowmanager=(window manager ) context在意的面包p.getsystemservice (context.window _ service ); 在意的面包p display=window manager.getdefaultdisplay (; 在意的面包p}在意的面包ppublic AlertDialog builder ()在意的面包p//dialog布局在意的面包pview view=layoutinflater.from (context ).inffiction 控制自定义诊断布局在意的平移pllayout_BG=(linearlayout ) view.findviewbyid (r.id.llayout _ BG ); 在意的面包ptxt_title=(TextView ) view.findviewbyid (r.id.txt _ title ); 令人在意的面包ptxt _ title.set visibility (view.gone ); 在意的面包ptxt_msg=(TextView ) view.findviewbyid(r.id.txt_msg ); 令人在意的面包ptxt _ msg.set visibility (view.gone ); 在意的面包pbtn_neg=(Button ) view.findviewbyid ) r.id.BTN_neg ); 令人在意的面包pbtn _ neg.set visibility (view.gone ); 在意的面包pbtn_pos=(Button ) view.findviewbyid ) r.id.BTN_pos ); 令人在意的面包pbtn _ pos.set visibility (view.gone ); 在意的面包pimg_line=(imageview ) view.findviewbyid ) r.id.img_line ); 令人在意的面包pimg _ line.set visibility (view.gone ); 定义感兴趣的面包p//dialog布局和参数感兴趣的面包p dialog=new dialog (上下文,朴素的小熊猫) ); 在意的面包pdialog.setcontentview(view ); 调整在意的面包p//dialog的背景大小在意的面包pllayout _ BG.setlayoutparams (newframelayout.layout params ) (int ) display在意的面包p

rams.WRAP_CONTENT));return this;}public AlertDialog setTitle(String title) {showTitle = true;if ("".equals(title)) {txt_title.setText("标题");} else {txt_title.setText(title);}return this;}public AlertDialog setMsg(String msg) {showMsg = true;if ("".equals(msg)) {txt_msg.setText("内容");} else {txt_msg.setText(msg);}return this;}public AlertDialog setMsg(int rId) {showMsg = true;txt_msg.setText(rId);return this;}public AlertDialog setCancelable(boolean cancel) {dialog.setCancelable(cancel);return this;}public AlertDialog setPositiveButton(String text,final OnClickListener listener) {showPosBtn = true;if ("".equals(text)) {btn_pos.setText("确定");} else {btn_pos.setText(text);}btn_pos.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if(listener!=null) {listener.onClick(v);}dialog.dismiss();}});return this;}public AlertDialog setNegativeButton(String text,final OnClickListener listener) {showNegBtn = true;if ("".equals(text)) {btn_neg.setText("取消");} else {btn_neg.setText(text);}btn_neg.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if(listener!=null) {listener.onClick(v);}dialog.dismiss();}});return this;}private void setLayout() {if (!showTitle && !showMsg) {txt_title.setText("");txt_title.setVisibility(View.VISIBLE);}if (showTitle) {txt_title.setVisibility(View.VISIBLE);}if (showMsg) {txt_msg.setVisibility(View.VISIBLE);}if (!showPosBtn && !showNegBtn) {btn_pos.setText("确定");btn_pos.setVisibility(View.VISIBLE);btn_pos.setBackgroundResource(R.drawable.alertdialog_single_selector);btn_pos.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});}if (showPosBtn && showNegBtn) {btn_pos.setVisibility(View.VISIBLE);btn_pos.setBackgroundResource(R.drawable.alertdialog_right_selector);btn_neg.setVisibility(View.VISIBLE);btn_neg.setBackgroundResource(R.drawable.alertdialog_left_selector);img_line.setVisibility(View.VISIBLE);}if (showPosBtn && !showNegBtn) {btn_pos.setVisibility(View.VISIBLE);btn_pos.setBackgroundResource(R.drawable.alertdialog_single_selector);}if (!showPosBtn && showNegBtn) {btn_neg.setVisibility(View.VISIBLE);btn_neg.setBackgroundResource(R.drawable.alertdialog_single_selector);}}public void show() {setLayout();dialog.show();}}布局文件view_alertdialog.xml

android:id="@+id/lLayout_bg"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/alert_bg"android:orientation="vertical">

android:id="@+id/txt_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginTop="15dp"android:gravity="center"android:text="提示"android:textColor="@color/black"android:textSize="18dp" />

android:id="@+id/txt_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginTop="10dp"android:layout_marginBottom="10dp"android:gravity="center"android:text="您确定要退出吗?"android:textColor="@color/black"android:textSize="16dp" />

android:layout_width="match_parent"android:layout_height="0.5dp"android:layout_marginTop="10dp"android:background="@color/alertdialog_line" />

android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal">

android:id="@+id/btn_neg"android:layout_width="wrap_content"android:layout_height="43dp"android:layout_weight="1"android:background="@drawable/alertdialog_left_selector"android:gravity="center"android:text="确定"android:textColor="@color/bigtextcolor"android:textSize="16sp" />

android:id="@+id/img_line"android:layout_width="0.5dp"android:layout_height="43dp"android:background="@color/alertdialog_line" />

android:id="@+id/btn_pos"android:layout_width="wrap_content"android:layout_height="43dp"android:layout_weight="1"android:background="@drawable/alertdialog_right_selector"android:gravity="center"android:text="取消"android:textColor="@color/themecolor"android:textSize="16sp" />以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。