自定义 Dialog

/**

  • Created by JsonQiu on 2018/2/1.
    */

public class MyDialog extends Dialog {

private final Float fHeight;
private final Float fWeight;
private Activity context;
private String title;
private String confirmButtonText;
private String cacelButtonText;
private ClickListenerInterface clickListenerInterface;

public interface ClickListenerInterface {

    public void doConfirm();

    public void doCancel();
}

public MyDialog(Activity context, String title, String confirmButtonText, String cacelButtonText,Float fHeight,Float fWeight) {
    super(context, R.style.mydialog);
    this.context = context;
    this.title = title;
    this.confirmButtonText = confirmButtonText;
    this.cacelButtonText = cacelButtonText;
    this.fHeight = fHeight;
    this.fWeight = fWeight;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    init();
}

public void init() {
    LayoutInflater inflater = LayoutInflater.from(context);
    View view = inflater.inflate(R.layout.my_self_dialog, null);
    setContentView(view);

    TextView tvTitle = (TextView) view.findViewById(R.id.my_dialog_tv_title);
    Button btnCancle = (Button) view.findViewById(R.id.my_dialog_btn_cancel);
    Button btnConfirm = (Button) view.findViewById(R.id.my_dialog_btn_confirm);

    tvTitle.setText(title);
    btnConfirm.setText(confirmButtonText);
    btnCancle.setText(cacelButtonText);

    btnCancle.setOnClickListener(new clickListener());
    btnConfirm.setOnClickListener(new clickListener());

    Window dialogWindow =getWindow();
    WindowManager m = context.getWindowManager();
    Display d = m.getDefaultDisplay();
    WindowManager.LayoutParams p = dialogWindow.getAttributes();
    p.height = (int) (d.getHeight() * fHeight);
    p.width = (int) (d.getWidth() * fWeight);
    dialogWindow.setAttributes(p);
}

public void setClicklistener(ClickListenerInterface clickListenerInterface) {
    this.clickListenerInterface = clickListenerInterface;
}

private class clickListener implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
            case R.id.my_dialog_btn_cancel:
                clickListenerInterface.doCancel();
                break;
            case R.id.my_dialog_btn_confirm:
                clickListenerInterface.doConfirm();
                break;
        }
    }

}

}


android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_shap"
android:orientation="vertical">





    

bg_shap





final MyDialog myDialog = new MyDialog(getActivity(), "确认删除此称重商品?", "确认", "取消", 0.4f, 0.45f);
myDialog.setCanceledOnTouchOutside(true);
//设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
myDialog.show();
myDialog.setClicklistener(new MyDialog.ClickListenerInterface() {
@Override
public void doConfirm() {
myDialog.dismiss();
}

@Override
public void doCancel() {
    Toast.makeText(getActivity(), "取消", Toast.LENGTH_SHORT).show();
    myDialog.dismiss();
}

});

你可能感兴趣的:(自定义 Dialog)