全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

android自定义AlertDialog对话框

前面一篇文章https://www./article/103036.htm介绍了alertDialog的四种简单使用,但是有些时候为了让整个app的风格统一,或者说前面的四种形式不符合项目中的需求,这个时候就需要我们自定义alertDialog了。直接上代码

CustomAlertDialog:

import android.app.Dialog; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
 
/** 
 * Created by yk on 2017/1/17. 
 */ 
 
public class CustomAlertDialog extends Dialog implements View.OnClickListener { 
 
 
 
 public interface OnDialogButtonClickListener { 
  /** 
   * 点击按钮的回调方法 
   * 
   * @param requestCode 
   * @param isPositive 
   */ 
  void onDialogButtonClick(int requestCode, boolean isPositive); 
 } 
 
 private Context context; 
 private String title; 
 private String message; 
 private String strPositive; 
 private String strNegative; 
 private int requestCode; 
 private OnDialogButtonClickListener listener; 
 
 public CustomAlertDialog(Context context, String title, String message, int requestCode, 
        OnDialogButtonClickListener listener) { 
  super(context, R.style.MyDialog); 
  this.context=context; 
  this.title=title; 
  this.message=message; 
  this.requestCode=requestCode; 
  this.listener=listener; 
 
 } 
 
 private TextView tvTitle; 
 private TextView tvMessage; 
 private Button btnPositive; 
 private Button btnNegative; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.alert_dialog); 
//  setCancelable(false);//设置点击对话框外部和按返回键都不可以取消 
//  setCanceledOnTouchOutside(false);//设置点击对话框外部是否可以取消,默认是不可以取消(但是点返回键可以取消) 
 
  tvTitle = (TextView) findViewById(R.id.tvAlertDialogTitle); 
  tvMessage = (TextView) findViewById(R.id.tvAlertDialogMessage); 
  btnPositive = (Button) findViewById(R.id.btnAlertDialogPositive); 
  btnNegative = (Button) findViewById(R.id.btnAlertDialogNegative); 
 
  tvTitle.setText(title); 
  tvMessage.setText(message); 
 
  btnPositive.setOnClickListener(this); 
  btnNegative.setOnClickListener(this); 
 } 
 
 @Override 
 public void onClick(View view) { 
  switch (view.getId()){ 
   case R.id.btnAlertDialogPositive: 
    //确定按钮 
    listener.onDialogButtonClick(requestCode,true); 
    break; 
   case R.id.btnAlertDialogNegative: 
    //取消按钮 
    listener.onDialogButtonClick(requestCode,false); 
    break; 
  } 
  dismiss(); 
 } 
} 

 MainActivity:

package com.example.yk.dialogtest; 
 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Toast; 
 
public class CustomDialogActivity extends AppCompatActivity implements CustomAlertDialog.OnDialogButtonClickListener { 
 
 private static final int REQUEST_CODE_FIRST = 1; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_custom_dialog); 
  CustomAlertDialog alertDialog=new CustomAlertDialog(this,"title","message",REQUEST_CODE_FIRST,this); 
  alertDialog.show(); 
 
 } 
 
 @Override 
 public void onDialogButtonClick(int requestCode, boolean isPositive) { 
  if(requestCode==REQUEST_CODE_FIRST && isPositive){ 
   Toast.makeText(this, "点击了确定", Toast.LENGTH_SHORT).show(); 
  } else if (requestCode==REQUEST_CODE_FIRST && !isPositive) { 
   Toast.makeText(this, "点击了取消", Toast.LENGTH_SHORT).show(); 
  } 
 } 
} 

实现的效果:

如果我们需要自定义“确定”和“取消”按钮所显示的字,可以再写一个构造方法,比如:

public AlertDialog(Context context, String title, String message,String strPositive, String strNegative, int requestCode, OnDialogButtonClickListener listener) { 
  super(context, R.style.MyDialog); 
 
  this.context = context; 
  this.title = title; 
  this.message = message; 
  this.strPositive = strPositive; 
  this.strNegative = strNegative; 
  this.requestCode = requestCode; 
  this.listener = listener;  
 } 
if(!TextUtils.isEmpty(strPositive)){ 
   btnPositive.setText(strPositive); 
  } 
  if(!TextUtils.isEmpty(strNegative)){ 
   btnNegative.setText(strNegative); 
  } 

实现的效果:


源码(包括上篇文章中四种简单alertDialog的使用):http://xiazai./201701/yuanma/androidAlertDialog().rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # AlertDialog  # Android实现点击AlertDialog上按钮时不关闭对话框的方法  # Android中AlertDialog各种对话框的用法实例详解  # Android使用AlertDialog实现的信息列表单选、多选对话框功能  # Android中AlertDialog 点击按钮后不关闭对话框的功能  # Android修改源码解决Alertdialog触摸对话框边缘消失的问题  # Android 自定义AlertDialog对话框样式  # Android对话框AlertDialog.Builder使用方法详解  # ANDROID中自定义对话框AlertDialog使用示例  # Android Alertdialog(实现警告对话框)  # Android开发之AlertDialog实现弹出对话框  # 四种  # 自定义  # 对话框  # 都不  # 不可以  # 这个时候  # 不符合  # 或者说  # 回调  # 一篇文章  # 大家多多  # 上篇  # 再写  # extends  # public  # implements  # interface  # OnClickListener  # OnDialogButtonClickListener  # TextView 


相关文章: 如何用PHP快速搭建高效网站?分步指南  如何在云服务器上快速搭建个人网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何在阿里云香港服务器快速搭建网站?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  免费视频制作网站,更新又快又好的免费电影网站?  如何快速生成橙子建站落地页链接?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  实现虚拟支付需哪些建站技术支撑?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  jQuery 常见小例汇总  已有域名如何免费搭建网站?  如何规划企业建站流程的关键步骤?  常州企业网站制作公司,全国继续教育网怎么登录?  如何实现建站之星域名转发设置?  太平洋网站制作公司,网络用语太平洋是什么意思?  太原网站制作公司有哪些,网约车营运证查询官网?  如何用PHP工具快速搭建高效网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  建站之星导航配置指南:自助建站与SEO优化全解析  Android滚轮选择时间控件使用详解  建站主机选购指南:核心配置优化与品牌推荐方案  视频网站app制作软件,有什么好的视频聊天网站或者软件?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何快速使用云服务器搭建个人网站?  linux top下的 minerd 木马清除方法  建站之星安装后界面空白如何解决?  已有域名和空间如何快速搭建网站?  如何通过免费商城建站系统源码自定义网站主题与功能?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  专业网站建设制作报价,网页设计制作要考什么证?  如何破解联通资金短缺导致的基站建设难题?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  香港服务器选型指南:免备案配置与高效建站方案解析  如何选择适合PHP云建站的开源框架?  如何通过主机屋免费建站教程十分钟搭建网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何快速上传自定义模板至建站之星?  如何快速完成中国万网建站详细流程?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站主机选虚拟主机还是云服务器更好?  小程序网站制作需要准备什么资料,如何制作小程序?  如何配置FTP站点权限与安全设置?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  制作公司内部网站有哪些,内网如何建网站?  如何快速搭建自助建站会员专属系统?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  如何通过商城免费建站系统源码自定义网站主题?  如何选择网络建站服务器?高效建站必看指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。