alertdialogAndroid开发,Dialog dialog=new AlertDialog.Builder(this)出错。
alertdialog 时间:2021-07-13 阅读:(
)
安卓提示框代码写了但是没显示 AlertDialog.Builder builder
public class MyDialog extends Dialog {
private int FLAG_DISMISS = 1;
private boolean flag = true;
public MyDialog(Context context) {
super(context);
setTitle("自动消失对话框测试!");
}
@Override
public void show() {
super.show();
mThread.start();
}
@Override
public void dismiss() {
super.dismiss();
flag = false;
}
private Thread mThread = new Thread(){
@Override
public void run() {
super.run();
while(flag){
try {
Thread.sleep(2000);
Message msg = mHandler.obtainMessage();
msg.what = FLAG_DISMISS;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == FLAG_DISMISS)
dismiss();
}
};
}
LZ 筒子,AlertDialog都被框死用来做警告用的,不好操作。
想实现自己的对话框还是继承Dialog然后DIY更好,选择也多得多了。
我这个自定义的Dialog就是显示了2s然后消失的,测试过没问题。
实现起来也相当之简单,抛砖引玉,期待更好的方法。
android的对话框alertdialog.builder方法 可以在myeclipse 上使用吗
们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。
当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?
幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog
Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。
首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现
new AlertDialog.Builder(self)
setTitle("标题")
setMessage("简单消息框")
setPositiveButton("确定", null)
show();
效果如下:
上面的代码中我们新建了一个AlertDialog,并用Builder方法形成了一个对象链,通过一系列的设置方法,构造出我们需要的对话框,然
后调用show方法显示出来,注意到Builder方法的参数
self,这个其实是Activity对象的引用,根据你所处的上下文来传入相应的引用就可以了。
例如在onCreate方法中调用,只需传入this即
可。
下面是带确认和取消按钮的对话框:
new AlertDialog.Builder(self)
setTitle("确认")
setMessage("确定吗?")
setPositiveButton("是", null)
setNegativeButton("否", null)
show();
注意到,这里有两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。
下面是一个可以输入文本的对话框:
new AlertDialog.Builder(self)
setTitle("请输入")
setIcon(android.R.drawable.ic_dialog_info)
setView(new EditText(self))
setPositiveButton("确定", null)
setNegativeButton("取消", null)
show();
如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。
。
尽情发挥你的想象力吧~
下面是单选框与多选框,也是非常有用的两种对话框:
new AlertDialog.Builder(self)
setTitle("请选择")
setIcon(android.R.drawable.ic_dialog_info)
setSingleChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}
)
setNegativeButton("取消", null)
show();
new AlertDialog.Builder(self)
setTitle("多选框")
setMultiChoiceItems(new String[] {"选项","选项","选项","选项"}, null, null)
setPositiveButton("确定", null)
setNegativeButton("取消", null)
show();
单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个
列表对话框:
new AlertDialog.Builder(self)
setTitle("列表框")
setItems(new String[] {"列表项1","列表项2","列表项3"}, null)
setNegativeButton("确定", null)
show();
最后,在对话框中显示图片:
ImageView img = new ImageView(self);
img.setImageResource(R.drawable.icon);
new AlertDialog.Builder(self)
setTitle("图片框")
setView(img)
setPositiveButton("确定", null)
show();
我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~
~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~
最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。
Android开发,Dialog dialog=new AlertDialog.Builder(this)出错。
比如你的源码文件名是 Activity.java,就改成
Dialog dialog=new AlertDialog.Builder(Activity.this);
因名称而异。
在listener中的this指代的并不是Activity里的this,而两个this成员和方法是完全不一样的,所以会出错,需要告诉IDE即将访问的是Activity的this,这样就不会出问题了。
近日CloudCone发布了最新的补货消息,针对此前新年闪购年付便宜VPS云服务器计划方案进行了少量补货,KVM虚拟架构,美国洛杉矶CN2 GT线路,1Gbps带宽,最低3TB流量,仅需14美元/年,有需要国外便宜美国洛杉矶VPS云服务器的朋友可以尝试一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器...
atcloud主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御+不限流量,杜绝DDoS攻击骚扰,比较适合海外建站等相关业务。ATCLOUD.NET是一家成立于2020年的海外主机商,主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解...
快快CDN主营业务为海外服务器无须备案,高防CDN,防劫持CDN,香港服务器,美国服务器,加速CDN,是一家综合性的主机服务商。美国高防服务器,1800DDOS防御,单机1800G DDOS防御,大陆直链 cn2线路,线路友好。快快CDN全球安全防护平台是一款集 DDOS 清洗、CC 指纹识别、WAF 防护为一体的外加全球加速的超强安全加速网络,为您的各类型业务保驾护航加速前进!价格都非常给力,需...
alertdialog为你推荐
java学习思维导图优秀好用的免费流程图与思维导图绘制工具有哪些,最好mac下和windows下都可以用。微软将停止支持32位Win10系统win10提示系统安装错误怎么解决物联卡官网物联卡,是什么卡啊???腾讯汽车论坛买车需要注意些神马?魔兽世界密保卡WOW现在的密保卡怎么弄?微软永久关闭实体店微软windows10易升怎么关闭pps电影PPS上最近有什么电影值得观看oa源码小猪cms微信oa源码好用不?3d视频制作3dsmax可以制作3d视频吗?视频时间可以多长?先谢谢啦、cad图批量打印在cad中如何进行批量打印
linux虚拟主机 hostmonster ssh帐号 地址大全 华为网络硬盘 免费个人空间 域名接入 国外ip加速器 备案空间 阿里云手机官网 主机返佣 cdn服务 中国电信宽带测速 globalsign alexa搜 asp简介 美国达拉斯 俄勒冈州 blaze 免费网络电视直播 更多