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,这样就不会出问题了。
LOCVPS发布了7月份促销信息,全场VPS主机8折优惠码,续费同价,同时香港云地/邦联机房带宽免费升级不加价,原来3M升级至6M,2GB内存套餐优惠后每月44元起。这是成立较久的一家国人VPS服务商,提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建站和远程办...
在2014年发现原来使用VPS的客户需求慢慢的在改版,VPS已经不能满足客户的需求。我们开始代理机房的独立服务器,主推和HS机房的独立服务器。经过一年多的发展,我们发现代理的服务器配置参差不齐,机房的售后服务也无法完全跟上,导致了很多问题发生,对使用体验带来了很多的不便,很多客户离开了我们。经过我们慎重的考虑和客户的建议。我们在2015开始了重大的改变, 2015年,我们开始计划托管自己...
Friendhosting发布了今年黑色星期五促销活动,针对全场VDS主机提供45折优惠码,虚拟主机4折,老用户续费可获9折加送1个月使用时长,优惠后VDS最低仅€14.53/年起,商家支持PayPal、信用卡、支付宝等付款方式。这是一家成立于2009年的老牌保加利亚主机商,提供的产品包括虚拟主机、VPS/VDS和独立服务器租用等,数据中心可选美国、保加利亚、乌克兰、荷兰、拉脱维亚、捷克、瑞士和波...
alertdialog为你推荐
大蟒蛇平台PY平台是什么?限制局域网网速有什么可以限制局域网的网速?linksys无线路由器设置linksys无线路由器为什么进不了设置菜单java学习思维导图优秀好用的免费流程图与思维导图绘制工具有哪些,最好mac下和windows下都可以用。goalgoalgoal7个多啦A梦的是什么动画片了?微软将停止支持32位Win10系统WIN10系统Microsoft Office已停止工作怎么解决色中色luntanwww.fzluntan.tk是什么类型的网站啊?dnf客户端消失地下城勇士登录 客户端消失魔兽世界密保卡魔兽世界密保卡绑定音响解码CD锁了怎么解
台湾主机 网游服务器租用 香港vps主机 域名备案中心 x3220 服务器配置技术网 vps.net vultr美国与日本 轻博 警告本网站 好看qq空间 web服务器的架设 世界测速 卡巴斯基破解版 银盘服务是什么 最漂亮的qq空间 512mb 网站加速软件 512内存 sonya 更多