对话框逻辑修改
This commit is contained in:
@@ -4,7 +4,6 @@ import android.app.AlertDialog
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
@@ -21,17 +20,11 @@ import com.xjjk.healthyclients.databinding.DialogAppraiseBinding
|
|||||||
class AppraiseDialog constructor(
|
class AppraiseDialog constructor(
|
||||||
context: Context
|
context: Context
|
||||||
) : AlertDialog(context) {
|
) : AlertDialog(context) {
|
||||||
lateinit var mOnSubmitClickListener: OnSubmitClickListener
|
// 提交点击监听器
|
||||||
|
var mOnSubmitClickListener: OnSubmitClickListener?=null
|
||||||
|
// 数据绑定对象
|
||||||
lateinit var binding: DialogAppraiseBinding
|
lateinit var binding: DialogAppraiseBinding
|
||||||
|
|
||||||
init {
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
create()
|
|
||||||
} else {
|
|
||||||
onCreate(null)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = DataBindingUtil.inflate(
|
binding = DataBindingUtil.inflate(
|
||||||
@@ -51,15 +44,11 @@ class AppraiseDialog constructor(
|
|||||||
CustomToast.makeText(context, "您还没有选择星级评分", Toast.LENGTH_SHORT).show()
|
CustomToast.makeText(context, "您还没有选择星级评分", Toast.LENGTH_SHORT).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
if (this::mOnSubmitClickListener.isInitialized) {
|
|
||||||
mOnSubmitClickListener?.onSubmitClick(this@AppraiseDialog)
|
mOnSubmitClickListener?.onSubmitClick(this@AppraiseDialog)
|
||||||
}
|
|
||||||
this.cancel()
|
this.cancel()
|
||||||
}
|
}
|
||||||
binding.btnClose.setOnClickListener {
|
binding.btnClose.setOnClickListener {
|
||||||
if (this::mOnSubmitClickListener.isInitialized) {
|
|
||||||
mOnSubmitClickListener?.onCancelClick(this@AppraiseDialog)
|
mOnSubmitClickListener?.onCancelClick(this@AppraiseDialog)
|
||||||
}
|
|
||||||
this.cancel()
|
this.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,11 +59,26 @@ class AppraiseDialog constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评分提交回调接口
|
||||||
|
*/
|
||||||
interface OnSubmitClickListener {
|
interface OnSubmitClickListener {
|
||||||
|
/**
|
||||||
|
* 提交按钮点击回调
|
||||||
|
*/
|
||||||
fun onSubmitClick(viewDialog: AppraiseDialog)
|
fun onSubmitClick(viewDialog: AppraiseDialog)
|
||||||
|
/**
|
||||||
|
* 关闭按钮点击回调
|
||||||
|
*/
|
||||||
fun onCancelClick(viewDialog: AppraiseDialog){}
|
fun onCancelClick(viewDialog: AppraiseDialog){}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置对话框标题
|
||||||
|
* @param title 标题文本
|
||||||
|
* @param titleSize 标题字体大小,默认 18f
|
||||||
|
* @return 返回当前对象,支持链式调用
|
||||||
|
*/
|
||||||
fun setDialogTitle(title: String, titleSize: Float = 18f): AppraiseDialog {
|
fun setDialogTitle(title: String, titleSize: Float = 18f): AppraiseDialog {
|
||||||
binding.tvTitle.visibility = View.VISIBLE
|
binding.tvTitle.visibility = View.VISIBLE
|
||||||
binding.tvTitle.text = title
|
binding.tvTitle.text = title
|
||||||
@@ -82,35 +86,67 @@ class AppraiseDialog constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置评价内容输入框提示文本
|
||||||
|
* @param text 提示文本
|
||||||
|
* @param textSize 字体大小,默认 13f
|
||||||
|
* @return 返回当前对象,支持链式调用
|
||||||
|
*/
|
||||||
fun setContentHint(text: String, textSize: Float = 13f): AppraiseDialog {
|
fun setContentHint(text: String, textSize: Float = 13f): AppraiseDialog {
|
||||||
binding.etAppraise.hint = text
|
binding.etAppraise.hint = text
|
||||||
binding.etAppraise.textSize = textSize
|
binding.etAppraise.textSize = textSize
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置提交按钮文本
|
||||||
|
* @param text 按钮文本
|
||||||
|
* @param btnTextSize 字体大小,默认 18f
|
||||||
|
* @return 返回当前对象,支持链式调用
|
||||||
|
*/
|
||||||
fun setBtnText(text: String, btnTextSize: Float = 18f): AppraiseDialog {
|
fun setBtnText(text: String, btnTextSize: Float = 18f): AppraiseDialog {
|
||||||
binding.btnSubmit.text = text
|
binding.btnSubmit.text = text
|
||||||
binding.btnSubmit.textSize = btnTextSize
|
binding.btnSubmit.textSize = btnTextSize
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置对话框是否可取消
|
||||||
|
* @param flag true 可取消,false 不可取消
|
||||||
|
* @return 返回当前对象,支持链式调用
|
||||||
|
*/
|
||||||
fun setDialogCancelable(flag: Boolean): AppraiseDialog {
|
fun setDialogCancelable(flag: Boolean): AppraiseDialog {
|
||||||
setCancelable(flag)
|
setCancelable(flag)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户输入的评价内容
|
||||||
|
* @return 评价文本
|
||||||
|
*/
|
||||||
fun getAppraiseContext(): String {
|
fun getAppraiseContext(): String {
|
||||||
return binding.etAppraise.text.trim().toString()
|
return binding.etAppraise.text.trim().toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取评分条控件
|
||||||
|
* @return RatingBar 对象
|
||||||
|
*/
|
||||||
fun getRatingBar(): RatingBar {
|
fun getRatingBar(): RatingBar {
|
||||||
return binding.ratingBar
|
return binding.ratingBar
|
||||||
}
|
}
|
||||||
fun getRating(): Float {
|
|
||||||
return getRatingBar().rating
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 获取匿名状态
|
* 获取用户选择的星级评分
|
||||||
|
* @return 评分值(0-5)
|
||||||
|
*/
|
||||||
|
fun getRating(): Float {
|
||||||
|
return binding.ratingBar.rating
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取匿名评价状态
|
||||||
|
* @return true 为匿名,false 为非匿名
|
||||||
*/
|
*/
|
||||||
fun getAnonymityStatus(): Boolean {
|
fun getAnonymityStatus(): Boolean {
|
||||||
return binding.cbAnonymity.isChecked
|
return binding.cbAnonymity.isChecked
|
||||||
|
|||||||
Reference in New Issue
Block a user