1. 程式人生 > >Dialog基類封裝-----自定義dialog

Dialog基類封裝-----自定義dialog

 該封裝類用於dialog中有比較多的業務邏輯



import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;

/**
 * @author xianyong dai
 * @version v1.0
 * @Title: BaseDialog
 * @Description:對話方塊封裝類
 * @date 2018/12/4 16:20
 */
public abstract class BaseDialog extends Dialog {


    public BaseDialog(@NonNull Context context) {
        super(context);
    }

    public BaseDialog(@NonNull Context context, int themeResId) {
        super(context, themeResId);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LayoutInflater inflater = LayoutInflater.from(getContext());
        View view = inflater.inflate(getLayoutId(), null);
        setContentView(view);
        initView(view);
        initData();
        initListener();
    }


    protected abstract int getLayoutId();

    protected abstract void  initView(View view);

    protected abstract void initData();

    protected abstract void initListener();

    protected abstract void setLayoutSize();

    @Override
    public void show() {
        super.show();
        setLayoutSize();//在show之後設定佈局寬高
    }


}