android中AlertDialog.Builder

AlertDialog.Builderbuilder=newAlertDialog.Builder(this);为什么已经导入了importandroid.app.Dia... AlertDialog.Builder builder = new AlertDialog.Builder(this);为什么已经导入了import android.app.Dialog; 却还是提示错误无法编译呢 展开
 我来答
QQMSD8
推荐于2016-03-18 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
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();
奇门剑轮舞
2013-09-14
知道答主
回答量:15
采纳率:0%
帮助的人:7.7万
展开全部
sdk 版本不符合,例如手机sdk版本是 10 也就是2.3版本,你的代码开发时候用的方式是11及以上sdk才提供的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邠心
2013-08-14 · 超过15用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:22.9万
展开全部
需要写import android.app.AlertDialog
另外.Builder后的括号里要写当前Activity名.this,如(Main.this)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雾里看花的过客
2012-08-20 · TA获得超过554个赞
知道小有建树答主
回答量:628
采纳率:100%
帮助的人:394万
展开全部
你这个this是什么,是activity 对象?自己看下,也许你这句话写在内部类当中导致你的this指向的不是activity
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈峰007
2012-08-20
知道答主
回答量:10
采纳率:0%
帮助的人:6.8万
展开全部
不知道具体的问题所在,还有你这传递的this是不是activity的this呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式