the constructor AlertDialog.Builder(new View.OnClickListener() ) is undefined

来源:互联网 发布:程序员常用的工具 编辑:程序博客网 时间:2024/05/16 16:23


安卓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。

问题解决~

   

0 0
原创粉丝点击