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