alertdialog怎么设置alertdialog message显示位置
alertdialog 时间:2021-07-13 阅读:(
)
请教下AlertDialog.Builder那个黑背景怎么消除掉呢?布局透明
你这种问题是属于自定义类型的问题了。
想改变后面的背景的话,就得继承Dialog自己重写一个弹出框,只需自定义一个你要的样式style和layout!你可以查一下自定义dialog,很简单的,不难android中AlertDialog.Builder
AlertDialog.Builder的API可以查看官网文档,具体实现代码如下:
1.创建AlertDialog.Builder并设置数据源
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("复选框"); //设置对话框标题
builder.setIcon(android.R.drawable.ic_menu_more); //设置对话框标题前的图标
final String[] data = getResources().getStringArray(R.array.radio); //通过resources 得到strings.xml中的字符串数组
boolean[] state = new boolean[data.length];
for(int i=0; i<data.length; i++){
state[i] = sboolean.get(i); //将状态集合中的数据取出来,下次选择时候会默认选中
}
2.注册点击事件,并记录复选的数据
/*
* 第一个参数是,数据原,可以是数组,也可以传strings.xml那的字符串ID,但是建议用数组,因为多选监听返回的是数组的标下
* 第二个参数是,默认的选中位置,是个boolean数组,对应item的位置
* 第三个是列表点击监听事件
*/
builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//注册单选择监听事件
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"你选择了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]); //选择的时候要保存起来
}else{
Toast.makeText(context,"你取消了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]); //取消选中的时候要删除掉
}
sboolean.put(which, isChecked); //每次选择都要记录下这个item的状态
}
});
3.增加确定和取消按键
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了确定,选择的是: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});
4.设置dialog的相关参数,并弹出
builder.setNegativeButton("取消", null); //取消不做任何处理
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();android关闭AlertDialog.Builder
首先AlertDialog.Builder(this)所传参数类型是contex,也就是上下文环境。
this意思是当前对象,就是调用AlertDialog.Builder()的对象。
所以,前者的this是最外面的那个class产生的对象
后者是class A产生的对象。
android AlertDialog调用不到setCanceledOnTouchOutside怎么办
Android中,在Dialog中设置setCanceledOnTouchOutside方法如下:
具体实现代码:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); //设置对话框标题
builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标
2.创建EditText输入框
final EditText edit = new EditText(context);
3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});
4.设置常用api,并show弹出
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();如何设置AlertDialog的样式
可以完全自定义样式,setView 这个方法就可以 ;
参考如下:
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom));
然后自定义自己的样式就可以了;
怎么设置alertdialog message显示位置
????
下面是java代码,将上面的TextView加入message
以题主为例,R.layout.dialog_message是上面xml的id
final?AlertDialog.Builder?Dialog?=?new?AlertDialog.Builder(this);
Dialog.setTitle("悟空提示:");
LayoutInflater?inflater?=?getLayoutInflater();
View?convertView?=?inflater.inflate(R.layout.dialog_message,null);??
TextView?message?=?(TextView)?convertView.findViewById(R.id.message);
message.setText("师傅您输入的城市重复");
Dialog.setView(convertView);
木木云怎么样?木木云品牌成立于18年,此为贵州木木云科技有限公司旗下新运营高端的服务器的平台,目前已上线美国中部大盘鸡,母鸡采用E5-267X系列,硬盘全部组成阵列。目前,木木云美国vps进行了优惠促销,1核1G/500M带宽/1T硬盘/4T流量,仅35元/月。点击进入:木木云官方网站地址木木云优惠码:提供了一个您专用的优惠码: yuntue目前我们有如下产品套餐:DV型 1H 1G 500M带宽...
2021年恒创科技618活动香港美国服务器/云服务器/高防全场3折抢购,老客户续费送时长,每日限量秒杀。云服务器每款限量抢购,香港美国独服/高防每款限量5台/天,香港节点是CN2线路还不错。福利一:爆品秒杀 超低价秒杀,秒完即止;福利二:云服务器 火爆机型 3折疯抢;福利三:物理服务器 爆款直降 800元/月起;福利四:DDOS防护 超强防御仅 1750元/月。点击进入:2021年恒创科技618活...
国外主机测评昨天接到Hostigger(现Hostiger)商家邮件推送,称其又推出了一款特价大内存VPS,机房位于土耳其的亚欧交界城市伊斯坦布尔,核50G SSD硬盘200Mbps带宽不限月流量只要$59/年。 最近一次分享的促销信息还是5月底,当时商家推出的是同机房同配置的大内存VPS,价格是$59.99/年,不过内存只有10G,虽然同样是大内存,但想必这次商家给出16G,价格却是$59/年,...
alertdialog为你推荐
印象城市游戏论坛宙斯众神之王下的地图为什么没有?客服系统方案客户服务系统的设计与实现的开题报告腾讯汽车论坛买车需要注意些神马?云图好看吗电影《云图》到底讲的什么,没看懂,高手来说一下。操控人心怎样帮助别人让别人觉得欠我人情?音响解码大家好,音响锁住了怎么解锁?微软永久关闭实体店微软有一天倒闭了 你会怎样?xp仿win7桌面主题xp系统win7主题下载,xp系统能装win7的主题吗?如果能上哪下?hub和路由器的区别路由器和HUB的区别不同?开源视频会议远程视频会议主要有哪些优势的?
备案域名购买 naning9韩国官网 新秒杀 阿里云os enzu 免备案空间 evssl证书 警告本网站 国内加速器 网站被封 圣诞节促销 100m免费空间 howfile 赞助 网站卫士 域名接入 免费吧 cdn加速是什么 中国电信宽带测速网 360云服务 更多