android开发分享Android自定义对话框的简单实现

本文实例为大家分享了android自定义对话框的具体实现代码,供大家参考,具体内容如下1、定义对话框的布局<?xml version=”1.0″ encoding=”utf-8″?>&lt

android开发分享Android自定义对话框的简单实现实例为大家分享了android自定义对话框的具体实现代码,供大家参考,具体内容如下

上述就是android开发分享Android自定义对话框的简单实现的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

1、定义对话框的布局

<?xml version="1.0" encoding="utf-8"?>  <relativelayout xmlns:android="https://schemas.android.com/apk/res/android"      android:layout_width="match_parent"      android:layout_height="match_parent">        <textview          android:id="@+id/title"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:gravity="center"          android:textsize="16sp"          android:layout_margin="4dp"          android:text="标题"/>      <textview          android:id="@+id/content1"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:textsize="14sp"          android:text="第一行文字"          android:layout_margin="4dp"          android:layout_below="@id/title"          android:gravity="center"/>      <textview          android:id="@+id/content2"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:textsize="14sp"          android:text="第一行文字"          android:layout_margin="4dp"          android:layout_below="@id/content1"          android:gravity="center"/>        <linearlayout          android:id="@+id/linear"          android:layout_below="@id/content2"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:orientation="horizontal"          android:layout_margintop="6dp"          android:paddingright="20dp"          android:paddingleft="20dp"          >          <button              android:id="@+id/ok"              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:layout_weight="1"              android:gravity="center"              android:textsize="14sp"              android:text="确定"/>          <button              android:id="@+id/cancel"              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:layout_weight="1"              android:gravity="center"              android:textsize="14sp"              android:text="取消"/>      </linearlayout>        <button          android:id="@+id/know"          android:layout_below="@id/linear"          android:gravity="center"          android:layout_margintop="10dp"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:textsize="14sp"          android:text="知道了"/>    </relativelayout>

对话框样式(比较丑哈,就是大概这个意思,嘿嘿)

Android自定义对话框的简单实现

2、定义接口

利用接口回调的方式使对话框消失。

public interface dialoglistener {      void onclick(mydialog dialog,view view);  }

3、写一个类继承dialog,并重写构造方法

说明:第三个按钮的监听与其他两个不同,前两个使用的是button原声的监听事件,第三个为自定义的接口,目的是获取mydialog,然后通过dismiss()方法使对话框不显示。(接口回调的方式)

public class mydialog extends dialog {      private textview mtiponeview;      private textview mtiptwoview;      private textview mtitleview;      private button mokview;      private button mcancelview;      private button mkonwview;        private view.onclicklistener moklistener;      private view.onclicklistener mcancellistener;      private dialoglistener mknowlistener;        private string title;      private string onetip;      private string twotip;        private void setondialoglistener(dialoglistener listener){          this.mknowlistener = listener;      }          public mydialog(context context) {          super(context);      }      public mydialog(context context,string title,string onetip,string twotip,view.onclicklistener ok,view.onclicklistener cancel,dialoglistener know) {          this(context);          this.title = title;          this.onetip = onetip;          this.twotip = twotip;          moklistener = ok;          mcancellistener = cancel;          mknowlistener = know;      }        @override      protected void oncreate(bundle savedinstancestate) {          super.oncreate(savedinstancestate);          setcontentview(r.layout.layout_dialog);          mcancelview = (button) findviewbyid(r.id.cancel);          mokview = (button) findviewbyid(r.id.ok);          mkonwview = (button) findviewbyid(r.id.know);          mtiponeview = (textview) findviewbyid(r.id.content1);          mtiptwoview = (textview) findviewbyid(r.id.content2);          mtitleview = (textview) findviewbyid(r.id.title);            mtitleview.settext(title);          mtiptwoview.settext(twotip);          mtiponeview.settext(onetip);          mcancelview.setonclicklistener(mcancellistener);          mokview.setonclicklistener(moklistener);          mkonwview.setonclicklistener(new view.onclicklistener() {              @override              public void onclick(view view) {                  mknowlistener.onclick(mydialog.this,view);              }          });      }  }

通过setviewcontent(r.layout.~)为对话框设置样式;使用构造方法传值。

4、显示对话框

public class customdialogactivity extends appcompatactivity {        private dialoglistener listener;      private mydialog mydialog;      @override      protected void oncreate(bundle savedinstancestate) {          super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_custom_dialog);            listener = new dialoglistener() {              @override              public void onclick(mydialog dialog, view view) {                  mydialog.dismiss();              }          };      }        public void showdialog(view view){           mydialog = new mydialog(customdialogactivity.this, "不知道", "有问题么", "啥问题", new view.onclicklistener() {              @override              public void onclick(view view) {                  log.e("----->", "ok");                  //点击按钮发生的事件              }          }, new view.onclicklistener() {              @override              public void onclick(view view) {                  log.e("----->", "cancle");                  //点击按钮发生的事件              }          },listener);            mydialog.show();        }  }

注意:一定不要忘了show(),否则对话框不显示。

以上就是android开发分享Android自定义对话框的简单实现的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/1174659.html

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

精彩推荐