123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- package com.cr.dialog
- import android.app.Dialog
- import android.content.Context
- import android.view.Gravity
- import android.view.View
- import android.view.ViewGroup
- import android.widget.Button
- import android.widget.LinearLayout
- import android.widget.TextView
- import com.cr.cruav.R
- import com.cr.data.CrUtil
- import com.cr.widget.CrEditTextWidget
- /**
- * 操作系统:MAC系统
- * 创建者:王成
- * 创建日期:2023/6/7 15:42
- * 描述:输入对话框
- */
- class DialogInput : Dialog, View.OnClickListener {
- /**
- * 对外接口
- */
- interface DialogInputListener {
- /**
- * 完成
- * @param valueOne String 值1
- * @param valueTwo String 值2
- * @param self DialogInput 对话框本身
- */
- fun completion(valueOne:String,valueTwo:String,self:DialogInput)
- /**
- * 关闭
- */
- fun close()
- }
- // define: 2023/3/31 监听接口
- private var listener: DialogInputListener? = null
- // define: 2023/3/31 定义控件
- var btnCompletion: Button? = null // define: 2023/6/7 完成按钮
- var btnClose: Button? = null // define: 2023/6/7 取消按钮
- var lblTitle: TextView? = null // define: 2023/6/7 对话框标题
- var lblOne: TextView? = null // define: 2023/6/7 第一输入框标题
- var lblTwo: TextView? = null // define: 2023/6/7 第二输入框标题
- var panelOne: LinearLayout? = null // define: 2023/6/7 第一输入框容器
- var panelTwo: LinearLayout? = null // define: 2023/6/7 第二输入框容器
- var txtOne: CrEditTextWidget? = null // define: 2023/6/7 第一输入框
- var txtTwo: CrEditTextWidget? = null // define: 2023/6/7 第二输入框
- var self:DialogInput?=null // define: 2023/6/7 自身引用
- /**
- * 初始化
- * @param context Context
- * @constructor
- */
- constructor(context: Context) : this(context, 0)
- /**
- * 初始化
- * @param context Context 上下文
- * @param themeResId Int 主题Id
- * @constructor
- */
- constructor(context: Context, themeResId: Int) : super(context, R.style.Dialog) {
- init()
- }
- /**
- * 初始化
- * @param context Context 上下文
- * @param title String 标题
- * @constructor
- */
- constructor(context: Context, title: String) : super(context, R.style.Dialog) {
- init()
- lblTitle?.text = title
- }
- /**
- * 初始化
- * @param context Context 上下文
- * @param title String 主题
- * @param listener DialogNormalListener 消息监听
- * @constructor
- */
- constructor(
- context: Context,
- title: String,
- listener: DialogInputListener
- ) : super(context, R.style.Dialog) {
- init()
- lblTitle?.text = title
- this.listener = listener
- }
- /**
- * 初始化
- */
- private fun init() {
- self = this
- setContentView(R.layout.dig_input)
- window?.setGravity(Gravity.CENTER)
- window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
- // todo: 2023/3/31 禁止点击对话框外部关闭
- setCanceledOnTouchOutside(false)
- // todo: 2023/3/31 初始化控件
- btnCompletion = findViewById(R.id.dig_btn_ok)
- btnClose = findViewById(R.id.dig_btn_cancel)
- btnCompletion?.setOnClickListener(this)
- btnClose?.setOnClickListener(this)
- lblTitle = findViewById(R.id.dig_title)
- lblOne = findViewById(R.id.dig_lbl_one)
- lblTwo = findViewById(R.id.dig_lbl_two)
- panelOne = findViewById(R.id.dig_panel_one)
- panelTwo = findViewById(R.id.dig_panel_two)
- txtOne = findViewById(R.id.dig_txt_one)
- txtTwo = findViewById(R.id.dig_txt_two)
- // todo: 2023/3/31 默认不显示取消按钮
- btnClose?.visibility = View.GONE
- }
- /**
- * 设置标题
- * @param title String 标题内容
- */
- fun setTitle(title: String) {
- lblTitle?.text = title
- }
- /**
- * 设置标签显示内容
- * @param strOne String 标签一内容
- * @param strTow String 标签二内容
- */
- fun setLabels(strOne: String,strTow:String?) {
- if(strOne == null){
- panelOne?.visibility = View.GONE
- }else{
- panelOne?.visibility = View.VISIBLE
- lblOne?.text = strOne
- }
- if(strTow == null){
- panelTwo?.visibility = View.GONE
- }else{
- panelTwo?.visibility = View.VISIBLE
- lblTwo?.text = strTow
- }
- }
- /**
- * 设置输入文本框的提示信息
- * @param hintOne String 输入框一的提示信息
- * @param hintTwo String 输入框二的提示信息
- */
- fun setHints(hintOne:String,hintTwo:String){
- txtOne?.setContextHint(hintOne)
- txtTwo?.setContextHint(hintTwo)
- }
- /**
- * 设置输入框图标
- * @param fontOne String 输入框一图标
- * @param fontTwo String 输入框二图标
- */
- fun setFonts(fontOne:String,fontTwo:String){
- txtOne?.setFontIcon(fontOne)
- txtTwo?.setFontIcon(fontTwo)
- }
- /**
- * 设置按钮文字
- * @param okText String 确定按钮文字
- * @param closeText String 关闭按钮文字
- */
- fun setButtonsText(okText: String, closeText: String) {
- if (okText != null) {
- btnCompletion?.text = okText
- btnCompletion?.visibility = View.VISIBLE
- } else {
- btnCompletion?.visibility = View.GONE
- }
- if (closeText != null) {
- btnClose?.text = closeText
- btnClose?.visibility = View.VISIBLE
- } else {
- btnClose?.visibility = View.GONE
- }
- }
- /**
- * 设置初始化显示内容
- * @param onText String
- * @param twoText String
- */
- fun setContent(onText:String,twoText:String){
- txtOne?.setContent(onText)
- txtTwo?.setContent(twoText)
- }
- /**
- * 设置
- * @param okVisible Boolean 确定按钮是否显示
- * @param closeVisible Boolean 取消按钮是否显示
- */
- fun setButtonsVisible(okVisible: Boolean, closeVisible: Boolean) {
- btnCompletion?.visibility = if (okVisible) View.VISIBLE else View.GONE
- btnClose?.visibility = if (closeVisible) View.VISIBLE else View.GONE
- }
- /**
- * 设置监听
- * @param listener DialogInputListener
- */
- fun setListener(listener: DialogInputListener) {
- this.listener = listener
- }
- /**
- * 覆写点击事件
- * @param p0 View
- */
- override fun onClick(p0: View?) {
- when (p0?.id) {
- R.id.dig_btn_ok -> {
- if(panelOne?.visibility == View.VISIBLE && (txtOne!!.getContent() == null || txtOne!!.getContent() == "")){
- CrUtil.showToast("请输入内容!")
- return
- }
- if(panelTwo?.visibility == View.VISIBLE && (txtTwo!!.getContent() == null || txtTwo!!.getContent() == "")){
- CrUtil.showToast("请输入内容!")
- return
- }
- dismiss()
- listener?.completion(txtOne!!.getContent(),txtTwo!!.getContent(),self!!)
- }
- R.id.dig_btn_cancel -> {
- dismiss()
- listener?.close()
- }
- }
- }
- }
|