安卓AlertDialog的使用,但是却出现了该错误:the constructor AlertDialog.Builder(new View.OnClickListener() ) is undefined,我的代码如下:
protected void showChangTextSizeDialog() {
AlertDialog.Builder builder = new Builder(NewsDetailActivity.this);
builder.setTitle("设置文字大小");
String[] items ={"超大字号","大字号","正常字号","小字号","超小字号"};
builder.setSingleChoiceItems(items, realTextSize, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tempTextSize = which;
}
});
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
realTextSize = tempTextSize;
//设置文字大小
changTextSize(realTextSize);
}
});
builder.setPositiveButton("取消", null);
builder.show();
}
/**
* 设置位置大小
* @param realTextSize2
*/
protected void changTextSize(int realTextSize) {
// TODO Auto-generated method stub
switch (realTextSize) {
case 0://超大
settings.setTextSize(TextSize.LARGEST);
break;
case 1:
settings.setTextSize(TextSize.LARGER);
break;//大字号
case 2:
settings.setTextSize(TextSize.NORMAL);
break;//正常字号
case 3:
settings.setTextSize(TextSize.SMALLER);
break;//小字号
case 4:
settings.setTextSize(TextSize.SMALLEST);
break;//超小字号
default:
break;
}
查找了AlertDialog的源代码,也没能发现该问题,因为出错的原因是:Builder builder=new Builder(this) 该方法里面的this为当前类OnClickListener的实例,而不是我们想要赋值NewsDetailActivity.this,所以,只需要把this改为NewsDetailActivity.this。
问题解决~