欢迎使用优快云-markdown编辑器

本文介绍了一个自定义Dialog类的实现方法,该类继承自Dialog并实现了View.OnClickListener接口。通过构造函数可以设置不同的样式和内容,并提供了设置标题、确认按钮和取消按钮的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义Dialog
public class MyDialog extends Dialog implements View.OnClickListener{
private TextView contentTxt;
private TextView titleTxt;
private TextView submitTxt;
private TextView cancelTxt;

private Context mContext;
private String content;
private OnCloseListener listener;
private String positiveName;
private String negativeName;
private String title;

public MyDialog(Context context) {
    super(context);
    this.mContext = context;
}
public MyDialog(Context context, String content) {
    super(context, R.style.dialog);
    this.mContext = context;
    this.content = content;
}

public MyDialog(Context context, int themeResId, String content) {
    super(context, themeResId);
    this.mContext = context;
    this.content = content;
}

public MyDialog(Context context, int themeResId, String title,String content, OnCloseListener listener) {
    super(context, themeResId);
    this.mContext = context;
    this.content = content;
    this.listener = listener;
    this.title=title;
}

protected MyDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
    super(context, cancelable, cancelListener);
    this.mContext = context;
}

public MyDialog setTitle(String title){
    this.title = title;
    return this;
}

public MyDialog setPositiveButton(String name){
    this.positiveName = name;
    return this;
}

public MyDialog setNegativeButton(String name){
    this.negativeName = name;
    return this;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.view_dialog_common);
    setCanceledOnTouchOutside(false);
    initView();
}

private void initView(){
    contentTxt = (TextView)findViewById(R.id.content);
    titleTxt = (TextView)findViewById(R.id.title);
    submitTxt = (TextView)findViewById(R.id.submit);
    submitTxt.setOnClickListener(this);
    cancelTxt = (TextView)findViewById(R.id.cancel);
    cancelTxt.setOnClickListener(this);

    contentTxt.setText(content);
    if(!TextUtils.isEmpty(positiveName)){
        submitTxt.setText(positiveName);
    }

    if(!TextUtils.isEmpty(negativeName)){
        cancelTxt.setText(negativeName);
    }

    if(!TextUtils.isEmpty(title)){
        titleTxt.setText(title);
    }

}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.cancel:
            if(listener != null){
                listener.onClick(this, false);
            }
            this.dismiss();
            break;
        case R.id.submit:
            if(listener != null){
                listener.onClick(this, true);
            }
            break;
    }
}

public interface OnCloseListener{
    void onClick(Dialog dialog, boolean confirm);
}

}
————————————————————————————————————————
style

@null

true

false

true

@android:color/transparent

true


——————————————————————————————————————————
XML

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值