Dialog自定义样式的设置

final MyDialog dialog = new MyDialog(CouponsDetailActivity.this,R.style.MyDialogStyle);

View view = LayoutInflater.from(CouponsDetailActivity.this).inflate(R.layout.logindialog,null);

dialog.setContentView(view);

Button sure = (Button) view.findViewById(R.id.button_sure);

Button cancel = (Button) view.findViewById(R.id.button_cancel);

TextView title = (TextView) view.findViewById(R.id.tv_title);

title.setText("删除优惠券");

sure.setText("立即删除");

cancel.setText("暂时保留");

sure.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

cancel.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

dialog.show();

可以有效解决dialog中自定义布局中定义的按钮的监听功能,可以让dialog消失。

<!-- 这里设置dialog的样式,可以设置activity的dialog样式,也可以设置dialog的样式 -->

<style name="MyDialogStyle">

<item name="android:windowBackground">@android:color/transparent</item>

<item name="android:windowFrame">@null</item>

<item name="android:windowNoTitle">true</item>

<item name="android:windowIsFloating">true</item>

<item name="android:windowIsTranslucent">true</item>

<item name="android:windowContentOverlay">@null</item>

<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>

<item name="android:backgroundDimEnabled">true</item>

</style>

如果要将重写的dialog点击周围消失,在重写的dialog的方法中加入一下代码即可。

@Override

public boolean onTouchEvent(MotionEvent event) {

dismiss();

return super.onTouchEvent(event);

}

原文地址:https://www.cnblogs.com/kuaileyuyi/p/3852903.html