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,这样就不会出问题了。
老薛主机怎么样?老薛主机这个商家有存在有一些年头。如果没有记错的话,早年老薛主机是做虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站业务所以能持续到现在。这不,站长看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港vps主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港vps。点击进入...
DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...
今天有看到Raksmart账户中有一台VPS主机即将到期,这台机器之前是用来测试评测使用的。这里有不打算续费,这不面对万一导致被自动续费忘记,所以我还是取消自动续费设置。如果我们也有类似的问题,这里就演示截图设置Raksmart取消自动续费。这里我们可以看到上图,在对应VPS主机的【其余操作】中可以看到默认已经是不自动续费,所以我们也不要担心被自动续费的。当然,如果有被自动续费,我们确实不想续费的...
alertdialog为你推荐
软件开发的周期软件项目周期是什么淘气鸟松鸦是否会说话?魔兽世界密保卡魔兽世界的密保卡怎么申请xp仿win7桌面主题xp系统win7主题下载,xp系统能装win7的主题吗?如果能上哪下?发送验证码手机发送图文验证码怎么发,图文是一个长方型里面有四个数字,望知道者告知,发送验证码微信登录需要好友发验证码怎么办湖北健康码转码申请坐火车途经疫区健康码会变吗?jsp入门教程JSP基础教学应从哪几方面入手?数据库探针怎样理解数据库中的2NFfedora12linux(fedora12) 命令模式下分辨率,请教
com域名注册 济南域名注册 个人域名备案 主机测评 openv 冰山互联 鲨鱼机 12306抢票攻略 青果网 网盘申请 e蜗牛 美国十次啦服务器 服务器维护方案 已备案删除域名 北京双线 常州联通宽带 免费外链相册 shuang12 移动王卡 vi命令 更多