博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android自定义Dialog
阅读量:5211 次
发布时间:2019-06-14

本文共 3427 字,大约阅读时间需要 11 分钟。

这段时间在做一个项目,需要使用到自定义Dialog,先在网上找了一下资料,发现还是有很多没有讲清楚的,在此给出一个Demo,一来可以方便广大码农,二来也可以方便自己,以备不时之需。。。

一个app更新对话框

java代码:

package com.xiebao.util.dialog;import android.app.Dialog;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.TextView;import com.xiebao.R;import com.xiebao.bean.VersionBean;public class UpdateDialog extends Dialog {    @Override    public void setOnDismissListener(OnDismissListener listener) {        // TODO Auto-generated method stub        super.setOnDismissListener(listener);            }    private View updateButton;    private View cancelButton;    private TextView mVersionNoText;    private TextView mUpdateMessageText;    private VersionBean mVersion;    private Context context;    public UpdateDialog(Context context, VersionBean mVersion) {        this(context, android.R.style.Theme_Translucent_NoTitleBar);        this.mVersion = mVersion;        this.context=context;        showDialog();    }    private void showDialog() {        if(!isShowing()){            show();        }            }    public UpdateDialog(Context context) {        super(context);        // TODO Auto-generated constructor stub    }    public UpdateDialog(Context context, int theme) {        super(context, theme);        // TODO Auto-generated constructor stub    }           @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.update_version_view);        initView();        initListener();    }    private void initListener() {        mVersionNoText.setText("版本 : " +mVersion.getNo());        mUpdateMessageText.setText(mVersion.getDescription());        updateButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //要处理的业务                link();                canDialog();                            }        });        cancelButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                canDialog();            }        });    }    /**     * 跳转浏览器     */    private void link() {        // TODO Auto-generated method stub        String url = mVersion.getUrl(); // web address        Intent intent = new Intent(Intent.ACTION_VIEW);        intent.setData(Uri.parse(url));        context.startActivity(intent);        }    protected void canDialog() {    if(isShowing()){        dismiss();    }            }    private void initView() {        updateButton = findViewById(R.id.update_dialog_ok);        cancelButton = findViewById(R.id.update_dialog_cancel);        mVersionNoText = (TextView) findViewById(R.id.update_version);        mUpdateMessageText = (TextView) findViewById(R.id.update_info);    }}

布局文件

R.layout.update_version_view

1 
2
6 7
15 16
20 21
30 31
39
40 41
45 46
50 51
60
61 62
67 68
72 73
83 84
90 91
101
102
103

效果图:

 效果图:

转载于:https://www.cnblogs.com/xiaobijia/p/3844347.html

你可能感兴趣的文章
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
优秀员工一定要升职吗
查看>>
[LintCode] 462 Total Occurrence of Target
查看>>
springboot---redis缓存的使用
查看>>
架构图-模型
查看>>
sql常见面试题
查看>>
jQuery总结第一天
查看>>
Java -- Swing 组件使用
查看>>
Software--Architecture--DesignPattern IoC, Factory Method, Source Locator
查看>>
poj1936---subsequence(判断子串)
查看>>
黑马程序员_Java基础枚举类型
查看>>
【redis4 】
查看>>
[ python ] 练习作业 - 2
查看>>
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
HDU-1242-Rescue
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
Eclipse中如何开启断言(Assert),方法有二
查看>>
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
查看>>
压缩图片 待验证
查看>>