android自定义 dialog,Android之简单的实现一个自定义Dialog

public class CommonDialog extends Dialog {

/**

* 显示的图片

*/

private ImageViewimageIv ;

/**

* 显示的标题

*/

private TextViewtitleTv ;

/**

* 显示的消息

*/

private TextViewmessageTv ;

/**

* 确认和取消按钮

*/

private ButtonnegtiveBn ,positiveBn;

/**

* 按钮之间的分割线

*/

private ViewcolumnLineView ;

private TextViewprivacy;

public CommonDialog(Context context) {

super(context, R.style.CustomDialog);

}

/**

* 都是内容数据

*/

private Stringmessage;

private Stringtitle;

private Stringpositive,negtive ;

private int imageResId = -1 ;

/**

* 底部是否只有一个按钮

*/

private boolean isSingle =false;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.base_layout_dialog);

//按空白处不能取消动画

setCanceledOnTouchOutside(false);

//初始化界面控件

initView();

//初始化界面数据

refreshView();

//初始化界面控件的事件

initEvent();

}

/**

* 初始化界面的确定和取消监听器

*/

private void initEvent() {

//设置确定按钮被点击后,向外界提供监听

positiveBn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (onClickBottomListener!=null) {

onClickBottomListener.onPositiveClick();

}

}

});

//设置取消按钮被点击后,向外界提供监听

negtiveBn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (onClickBottomListener!=null) {

onClickBottomListener.onNegtiveClick();

}

}

});

//设置隐私政策被点击后,向外界提供监听

privacy.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

if(onClickBottomListener!=null){

onClickBottomListener.onPrivacyClick();

}

}

});

}

/**

* 初始化界面控件的显示数据

*/

private void refreshView() {

//如果用户自定了title和message

if (!TextUtils.isEmpty(title)) {

titleTv.setText(title);

titleTv.setVisibility(View.VISIBLE);

}else {

titleTv.setVisibility(View.GONE);

}

if (!TextUtils.isEmpty(message)) {

messageTv.setText(message);

}

//如果设置按钮的文字

if (!TextUtils.isEmpty(positive)) {

positiveBn.setText(positive);

}else {

positiveBn.setText("确定");

}

if (!TextUtils.isEmpty(negtive)) {

negtiveBn.setText(negtive);

}else {

negtiveBn.setText("取消");

}

if (imageResId!=-1){

i                mageIv.setImageResource(imageResId);

imageIv.setVisibility(View.VISIBLE);

}else {

imageIv.setVisibility(View.GONE);

}

/**

* 只显示一个按钮的时候隐藏取消按钮,回掉只执行确定的事件

*/

if (isSingle){

columnLineView.setVisibility(View.GONE);

negtiveBn.setVisibility(View.GONE);

}else {

negtiveBn.setVisibility(View.VISIBLE);

columnLineView.setVisibility(View.VISIBLE);

}

}

@Override

public void show() {

super.show();

refreshView();

}

/**

* 初始化界面控件

*/

private void initView() {

negtiveBn = (Button) findViewById(R.id.negtive);

positiveBn = (Button) findViewById(R.id.positive);

titleTv = (TextView) findViewById(R.id.title);

messageTv = (TextView) findViewById(R.id.message);

imageIv = (ImageView) findViewById(R.id.image);

columnLineView = findViewById(R.id.column_line);

privacy = findViewById(R.id.privacy);

}

/**

* 设置确定取消按钮的回调

*/

public OnClickBottomListeneronClickBottomListener;

public CommonDialogsetOnClickBottomListener(OnClickBottomListener onClickBottomListener) {

this.onClickBottomListener = onClickBottomListener;

return this;

}

public interface OnClickBottomListener{

/**

* 点击确定按钮事件

*/

public void onPositiveClick();

/**

* 点击取消按钮事件

*/

public void onNegtiveClick();

/**

* 点击隐私政策事件

*/

public void onPrivacyClick();

}

public StringgetMessage() {

return message;

}

public CommonDialogsetMessage(String message) {

this.message = message;

return this ;

}

public StringgetTitle() {

return title;

}

public CommonDialogsetTitle(String title) {

this.title = title;

return this ;

}

public StringgetPositive() {

return positive;

}

public CommonDialogsetPositive(String positive) {

this.positive = positive;

return this ;

}

public StringgetNegtive() {

return negtive;

}

public CommonDialogsetNegtive(String negtive) {

this.negtive = negtive;

return this ;

}

public int getImageResId() {

return imageResId;

}

public boolean isSingle() {

return isSingle;

}

public CommonDialogsetSingle(boolean single) {

isSingle = single;

return this ;

}

public CommonDialogsetImageResId(int imageResId) {

this.imageResId = imageResId;

return this ;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值