package com.xxpatx.os.dialog; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.constraintlayout.widget.ConstraintLayout; import com.xxpatx.os.R; public class EditContactDialog extends AlertDialog { private TextView tvPhoneNumber; private ConstraintLayout clEdit, clDelete, clCancel; private String mPhoneNumber; private boolean hideDelete = false; private Context mContext; public EditContactDialog(Context context) { super(context, R.style.CustomDialog); this.mContext = context; } public void setHideDelete(boolean hideDelete) { this.hideDelete = hideDelete; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_edit_contact); //按空白处不能取消动画 setCanceledOnTouchOutside(true); //初始化界面控件 initView(); //初始化界面数据 refreshView(); //初始化界面控件的事件 initEvent(); getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); } /** * 初始化界面的确定和取消监听器 */ private void initEvent() { //编辑按钮被点击后,向外界提供监听 clEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onClickBottomListener != null) { onClickBottomListener.onEditClick(); } } }); //删除按钮被点击后,向外界提供监听 clDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onClickBottomListener != null) { onClickBottomListener.onDeleteClick(); } } }); //取消按钮被点击后,向外界提供监听 clCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onClickBottomListener != null) { onClickBottomListener.onCancelClick(); } } }); } /** * 初始化界面控件的显示数据 */ private void refreshView() { //如果用户自定了title和message if (!TextUtils.isEmpty(mPhoneNumber)) { tvPhoneNumber.setText(mPhoneNumber); } else { } if (hideDelete) { clEdit.setVisibility(View.GONE); clDelete.setVisibility(View.GONE); } else { clEdit.setVisibility(View.VISIBLE); clDelete.setVisibility(View.VISIBLE); } } @Override public void show() { super.show(); refreshView(); } /** * 初始化界面控件 */ private void initView() { tvPhoneNumber = findViewById(R.id.tv_phone_number); clEdit = findViewById(R.id.cl_edit); clDelete = findViewById(R.id.cl_delete); clCancel = findViewById(R.id.cl_cancel); } /** * 设置确定取消按钮的回调 */ private OnClickBottomListener onClickBottomListener; public void setOnClickBottomListener(OnClickBottomListener onClickBottomListener) { this.onClickBottomListener = onClickBottomListener; } public interface OnClickBottomListener { /** * 点击编辑按钮事件 */ void onEditClick(); /** * 点击删除按钮事件 */ void onDeleteClick(); /** * 点击取消按钮事件 */ void onCancelClick(); } public EditContactDialog setPhoneNumber(String phoneNumber) { mPhoneNumber = phoneNumber; return this; } }