1. package jp.co.hyakujushibank.view
  2.  
  3. import android.app.Dialog
    import android.content.Context
    import android.os.Bundle
    import android.view.LayoutInflater
    import android.view.View
    import android.view.Window
    import android.widget.Button
    import android.widget.ImageView
    import android.widget.TextView
    import jp.co.hyakujushibank.securestarter.R
  4.  
  5. @Suppress("DEPRECATION")
    /**
    *
    * Created by liuhaolong on 2017/07/05.
    */
    class ConfirmDialog : Dialog {
  6.  
  7. private var supContext: Context? = null
    private var dialogMsg: String? = ""
    private var cacelButtonText: String? = ""
    private var confirmButtonText: String? = ""
    private var imageRes: Int = 0
    private var backFlag: Boolean = true
  8.  
  9. constructor(supContext: Context, dialogMsg: String, cacelButtonText: String, confirmButtonText: String) : super(supContext) {
    this.supContext = supContext
    this.dialogMsg = dialogMsg
    this.cacelButtonText = cacelButtonText
    this.confirmButtonText = confirmButtonText
    this.backFlag = backFlag
    }
  10.  
  11. constructor(supContext: Context, dialogMsg: String, cacelButtonText: String, confirmButtonText: String, backFlag: Boolean) : super(supContext) {
    this.supContext = supContext
    this.dialogMsg = dialogMsg
    this.cacelButtonText = cacelButtonText
    this.confirmButtonText = confirmButtonText
    this.backFlag = backFlag
    }
  12.  
  13. constructor(supContext: Context, dialogMsg: String, cacelButtonText: String, confirmButtonText: String, imageRes: Int) : super(supContext) {
    this.supContext = supContext
    this.dialogMsg = dialogMsg
    this.cacelButtonText = cacelButtonText
    this.confirmButtonText = confirmButtonText
    this.imageRes = imageRes
  14.  
  15. }
  16.  
  17. constructor(supContext: Context, dialogMsg: String, cacelButtonText: String, confirmButtonText: String, backFlag: Boolean, imageRes: Int) : super(supContext) {
    this.supContext = supContext
    this.dialogMsg = dialogMsg
    this.cacelButtonText = cacelButtonText
    this.confirmButtonText = confirmButtonText
    this.backFlag = backFlag
    this.imageRes = imageRes
    }
  18.  
  19. //クリックリスナーインターフェース
    var clickListenerInterface: ClickListenerInterface? = null
  20.  
  21. interface ClickListenerInterface {
    //確認
    fun doConfirm()
  22.  
  23. fun doCancel()
    }
  24.  
  25. override fun onBackPressed() {
    if (backFlag) {
    dismiss()
    }
    return
    }
  26.  
  27. override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    requestWindowFeature(Window.FEATURE_NO_TITLE)
    //初期化
    init()
  28.  
  29. }
  30.  
  31. fun setClicklistener(clickListenerInterface: ClickListenerInterface) {
    this.clickListenerInterface = clickListenerInterface
    }
  32.  
  33. fun init() {
    //充填画面
    val inflater = LayoutInflater.from(supContext)
    val view = inflater.inflate(R.layout.confirm_alert_dialog, null)
    setContentView(view)
    //メッセージ
    val tvMsg = view.findViewById(R.id.confirm_msg_text) as TextView
    //確認
    val tvConfirm = view.findViewById(R.id.click_btn) as Button
    //メッセージ
    val tvCancel = view.findViewById(R.id.cancel_btn) as Button
    //画像
    val dialogImage = view.findViewById(R.id.dialog_image) as ImageView
    if (imageRes == 0) {
    dialogImage.setImageDrawable(supContext!!.resources.getDrawable(R.mipmap.info))
    } else {
    dialogImage.setImageDrawable(supContext!!.resources.getDrawable(imageRes))
    }
    tvMsg.text = dialogMsg
    tvConfirm.text = confirmButtonText
    tvCancel.text = cacelButtonText
  34.  
  35. tvConfirm.setOnClickListener(clickListener())
    tvCancel.setOnClickListener(clickListener())
  36.  
  37. setCancelable(false)
    setCanceledOnTouchOutside(false)
  38.  
  39. val dialogWindow = window
    val lp = dialogWindow.attributes
    val d = context.resources.displayMetrics
    lp.width = (d.widthPixels * 0.95).toInt()
    dialogWindow.attributes = lp
    }
  40.  
  41. inner class clickListener : View.OnClickListener {
    override fun onClick(v: View) {
    val id = v.id
    when (id) {
    //ボタン
    R.id.click_btn -> clickListenerInterface!!.doConfirm()
    //ボタン
    R.id.cancel_btn -> clickListenerInterface!!.doCancel()
    }
    }
    }
    }
    怎么用:
  1. val confirm = ConfirmDialog(this@MypageFragmentView, "ログアウトしてもよろしいでしょうか?", "いいえ", "はい")
    confirm.setClicklistener(object : ConfirmDialog.ClickListenerInterface {
    override fun doConfirm() {
  2.  
  3. logoutApi(this@MypageFragmentView)
  4.  
  5. confirm.dismiss()
    }
  6.  
  7. //いいえ
    override fun doCancel() {
    confirm.dismiss()
    }
    })
    confirm.show()
  1.  
  1. val confirmDialog = ConfirmDialog(this@MyThemeWebView, msg, "いいえ", "はい", false)
  2.  
  3. confirmDialog.setOnKeyListener { dialog, keyCode, event ->
    if (keyCode == KeyEvent.KEYCODE_BACK && event!!.repeatCount == 0) {
    handler.cancel()
    }
    false
    }
  4.  
  5. confirmDialog.setClicklistener(object : ConfirmDialog.ClickListenerInterface {
    override fun doConfirm() {
    handler.proceed()
    confirmDialog.dismiss()
    }
  6.  
  7. //いいえ
    override fun doCancel() {
    handler.cancel()
    confirmDialog.dismiss()
    }
    })
  8.  
  9. confirmDialog.show()

Dialog共通写法(两个button)的更多相关文章

  1. Dialog共通写法(一个button)

    一个button的: package jp.co.hyakujushibank.view import android.app.Dialogimport android.content.Context ...

  2. Title共通写法

    用: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_c ...

  3. 一个共通的viewModel搞定所有的编辑页面-经典ERP录入页面(easyui + knockoutjs + mvc4.0)

    http://www.cnblogs.com/xqin/archive/2013/06/06/3120887.html 前言 我写代码喜欢提取一些共通的东西出来,之前的一篇博客中说了如何用一个共通的v ...

  4. 一个共通的viewModel搞定所有的分页查询一览及数据导出(easyui + knockoutjs + mvc4.0)

    前言 大家看标题就明白了我想写什么了,在做企业信息化系统中可能大家写的最多的一种页面就是查询页面了.其实每个查询页面,除了条件不太一样,数据不太一样,其它的其实都差不多.所以我就想提取一些共通的东西出 ...

  5. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  6. 共通css初次尝试

    1.网页的主要的html <@fn.html css=["${basePath}/css/help/guideCommon.css${versionControl}"]tit ...

  7. 共通脚本utils

    /** * 模块名:共通脚本 * 程序名: 通用工具函数 **/ var utils = {}; /** * 格式化字符串 * 用法: .formatString("{0}-{1}" ...

  8. List排序共通代码

    此共通方法可以根据特定字段进行排序 package com.gomecar.index.common.utils; import java.lang.reflect.Method; import ja ...

  9. iOS菜鸟学习--怎样避免两个button同一时候响应

    在測试应用时.有时会变态的将两个UIButton同一时候按住来測试.结果就是两个button会同一时候响应,会出现同一时候push两个viewcontroller等非正常情况.为了避免用户误操作造成这 ...

随机推荐

  1. BZOJ3073: [Pa2011]Journeys(线段树优化建图 Dijkstra)

    题意 \(n\)个点的无向图,构造\(m\)次边,求\(p\)到任意点的最短路. 每次给出\(a, b, c, d\) 对于任意\((x_{a \leqslant x \leqslant b}, y_ ...

  2. CSS选择器手册

    CSS选择器手册 选择器       选择器名称         例子 例子描述 CSS E.class 类选择器 E.intro 选择 class="intro" 的所有E元素. ...

  3. arcgis jsapi接口入门系列(3):各种类型的图层添加

    这里说的tomcat切片,是指arcgis server切片后,把切片图片文件用tomcat发布(其他任意web服务器发布都行) //添加tomcat切片图层 addTomcatTileLayer: ...

  4. github入门之基本操作--4

    1.初始化仓库 如果成功执行git init 命令,该目录下会生成一个.git的目录 2.查看仓库状态 *注: 实际工作中,git status使用次数非常多,一定要记住.因为当工作树和仓库被操作的过 ...

  5. codevs 1683 车厢重组(水题日常)

    时间限制: 1 s  空间限制: 1000 KB  题目等级 : 白银 Silver 题目描述 Description 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工 ...

  6. HDU 6052 To my boyfriend(容斥+单调栈)

    题意:对于一个n*m的方格,每个格子中都包含一种颜色,求出任意一个矩形包含不同颜色的期望. 思路: 啊啊啊啊啊,补了两天,总算A了这道题了,简直石乐志,前面的容斥还比较好写,后面的那个>13那个 ...

  7. WPF中窗体调用窗体

    在WPF中有时候我们需要在一个窗体中去调用另外的一个窗体,下面给出调用方法. 下面实现在MainWindow中通过点击一个按钮调用另外的一个窗口. 首先创建你要调用的另外一个窗口:点击最上面的项目  ...

  8. 用 Deployment 运行应用【转】

    从本章开始,我们将通过实践深入学习 Kubernetes 的各种特性.作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用,这就是本章的内容. Deployment 前面我们已经了解到,Kub ...

  9. Linux文件系统概述二

    VFS-目录项对象(dentry) 每个文件除了有一个索引节点 inode 数据结构外,还有一个目录项 dentry 数据结构 dentry 结构代表的是逻辑意义上的文件,描述的是文件逻辑上的属性,目 ...

  10. getpwuid和getpwnam的用法

    如果知道一个用户的用户ID或者登录名,可以通过getpwuid或getpwnam函数获得用户的登录信息.函数原型为:         #include <pwd.h> #include & ...