自定义一个Dialog你需要做那些事?
来源:互联网 发布:淘宝申请开网店要多久 编辑:程序博客网 时间:2024/05/12 21:42
1.写一个Dialog样式继承android:style/Theme.Dialog
<!--自定义Dialog的主题--> <style name="MyDialog" parent="android:style/Theme.Dialog"> <!--背景颜色及和透明程度--> <item name="android:windowBackground">@color/dialogBg</item> <!--是否去除标题 --> <item name="android:windowNoTitle">true</item> <!--是否去除边框--> <item name="android:windowFrame">@null</item> <!--是否浮现在activity之上--> <item name="android:windowIsFloating">true</item> <!--是否模糊--> <item name="android:backgroundDimEnabled">true</item> </style>
注:没有引入自定义主题可能会出现dialog大小异常,外部有系统dialog框...一些列问题。
2.写一个类继承Dialog
public class WithdrawDialog extends Dialog { private ImageView iv_cancel; private TextView tv_awardCount; private TextView tv_cancel; private TextView tv_confirm; private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器 private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器 public WithdrawDialog(@NonNull Context context) { super(context); } public WithdrawDialog(@NonNull Context context, int themeResId) { super(context, themeResId); } protected WithdrawDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) { super(context, cancelable, cancelListener); } /** * 设置取消按钮的显示内容和监听 * @param onNoOnclickListener */ public void setNoOnclickListener(onNoOnclickListener onNoOnclickListener) { this.noOnclickListener = onNoOnclickListener; } /** * 设置确定按钮的显示内容和监听 * @param onYesOnclickListener */ public void setYesOnclickListener(onYesOnclickListener onYesOnclickListener) { this.yesOnclickListener = onYesOnclickListener; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_withdraw); //按空白处能否取消动画 setCanceledOnTouchOutside(true); //初始化界面控件 initView(); //初始化界面控件的事件 setListener(); } private void setListener() { tv_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (noOnclickListener != null) { noOnclickListener.onNoClick(); } } }); iv_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (noOnclickListener != null) { noOnclickListener.onNoClick(); } } }); tv_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (yesOnclickListener != null) { yesOnclickListener.onYesClick(); } } }); } public void setAwardCount(String awardCount) { tv_awardCount.setText(awardCount); } private void initView() { iv_cancel = (ImageView) findViewById(R.id.iv_cancel); tv_awardCount = (TextView) findViewById(R.id.tv_awardCount); tv_cancel = (TextView) findViewById(R.id.tv_cancel); tv_confirm = (TextView) findViewById(R.id.tv_confirm); } /** * 设置确定按钮和取消被点击的接口 */ public interface onYesOnclickListener { public void onYesClick(); } public interface onNoOnclickListener { public void onNoClick(); }}注:通过接口回掉可以在使用该dialog的类中设置监听事件。
3.在需要显示自定义dialog的地方写自己的显示方法和设置监听
private void showWithdrawDialog(String awardCount){ final WithdrawDialog dialog = new WithdrawDialog(this, R.style.MyDialog); dialog.setNoOnclickListener(new WithdrawDialog.onNoOnclickListener() { @Override public void onNoClick() { dialog.dismiss(); } }); dialog.setYesOnclickListener(new WithdrawDialog.onYesOnclickListener() { @Override public void onYesClick() { Toast.makeText(WithdrawActivity.this, "调用提现接口", Toast.LENGTH_SHORT).show(); } }); dialog.show(); //放在show()方法之后否则空指针 dialog.setAwardCount(awardCount); }
4.效果如下图:
阅读全文
0 0
- 自定义一个Dialog你需要做那些事?
- 关于自定义Dialog那些事
- 关于自定义Dialog的那些事
- 做配置管理你需要那些知识?我的几年工作总结。
- 互联网 DBA 需要做那些事
- 互联网 DBA 需要做那些事
- 互联网DBA需要做那些事
- 互联网DBA需要做那些事
- 当你达到了一个高度、你需要做什么?
- 【Android界面实现】关于自定义Dialog的那些事
- 自定义注解,告别findViewById,你只需要这样做
- android自定义一个dialog
- dialog全屏那些事
- 做一个FLASH游戏你需要掌握的东西【实用】
- 网上创业,你需要做一个什么样的网站?
- 不漏掉一个Bug,你需要怎样做?
- 对于小白,创建一个网站你需要做什么?
- 自定义Dialog,view根据需要自定义填充
- Pycharm 和SQL sever的快速注释方法
- Android | 使用RecyclerView显示列表
- 栈的应用
- springboot自带定时器实现定时任务的开启关闭以及动态修改定时规则
- Linux配置多个Tomcat同时运行
- 自定义一个Dialog你需要做那些事?
- Type-C接口
- 工厂模式
- 普通类获取Spring容器中的bean
- thinkphp5加解密方法
- eclipse怎么全选jar包
- 多线程之初步:隔一秒打印一个,输入s停止
- Java JVM 2: 锁优化
- 应用上悬浮的快速启动菜单