150 lines
3.8 KiB
Java
150 lines
3.8 KiB
Java
package com.xxpatx.os.dialog;
|
|
|
|
|
|
import android.content.Context;
|
|
import android.os.Bundle;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
|
|
|
import com.xxpatx.os.R;
|
|
|
|
|
|
/**
|
|
* description:自定义dialog
|
|
*/
|
|
|
|
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();
|
|
}
|
|
|
|
/**
|
|
* 初始化界面的确定和取消监听器
|
|
*/
|
|
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) {
|
|
clDelete.setVisibility(View.GONE);
|
|
} else {
|
|
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;
|
|
}
|
|
}
|