diff --git a/app/src/main/java/com/xjjk/healthyclients/view/AppraiseDialog.kt b/app/src/main/java/com/xjjk/healthyclients/view/AppraiseDialog.kt index dca5279..73006a5 100644 --- a/app/src/main/java/com/xjjk/healthyclients/view/AppraiseDialog.kt +++ b/app/src/main/java/com/xjjk/healthyclients/view/AppraiseDialog.kt @@ -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( @@ -47,19 +40,15 @@ class AppraiseDialog constructor( );//设置对话框大小 window?.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) binding.btnSubmit.setOnClickListener { - if (getRating()==0F) { + if (getRating() == 0F) { CustomToast.makeText(context, "您还没有选择星级评分", Toast.LENGTH_SHORT).show() return@setOnClickListener } - if (this::mOnSubmitClickListener.isInitialized) { - mOnSubmitClickListener?.onSubmitClick(this@AppraiseDialog) - } + mOnSubmitClickListener?.onSubmitClick(this@AppraiseDialog) this.cancel() } binding.btnClose.setOnClickListener { - if (this::mOnSubmitClickListener.isInitialized) { - mOnSubmitClickListener?.onCancelClick(this@AppraiseDialog) - } + 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