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,这样就不会出问题了。
萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...
阿里云香港配置图提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 阿里云香港 16核32G 20M 这款产品,单单说价格上就是十分的离谱原价8631元/月的现价只要 999元 而且还有个8折循环优惠。废话不多说直接进入正题。优惠时间 2021年8月20日-2021年9月20日 优惠码 wn789 8折优惠阿里云香港BGP专线 16核32G 10M带宽 优惠购买 399元购买链接阿里云...
BuyVM商家属于比较老牌的服务商,早年有提供低价年付便宜VPS主机还记得曾经半夜的时候抢购的。但是由于这个商家风控非常严格,即便是有些是正常的操作也会导致被封账户,所以后来陆续无人去理睬,估计被我们风控的抢购低价VPS主机已经手足无措。这两年商家重新调整,而且风控也比较规范,比如才入手他们新上线的流媒体优化VPS主机也没有不适的提示。目前,BuyVM商家有提供新泽西、迈阿密等四个机房的VPS主机...
alertdialog为你推荐
发博客如何用word发博客日志?goalgoalgoal7个多啦A梦的是什么动画片了?美国大选投票实时数据美国总统大选选票如何统计百度预测世界杯预测2018年世界杯哪两个国家会打入决赛?微信语音在哪个文件夹怎么把微信语音导出来 从哪个文件夹导出啊flv转换aviflv怎么转换成avi腾讯汽车论坛腾讯·大楚网的核心产品云图好看吗电影云图好看吗?音响解码大家好,音响锁住了怎么解锁?双色球在线选号器求一款6120c双色球选号软件
手机域名注册 kvmla siteground 宕机监控 网通代理服务器 绍兴高防 浙江独立 促正网秒杀 秒杀预告 91vps cdn加速原理 闪讯官网 联通网站 路由跟踪 美国迈阿密 腾讯网盘 国外代理服务器 碳云 winserver2008r2 weblogic部署 更多