2011-10-04 34 views
0
b.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View arg0) { 
     if(bob1i + bih1i > 4 || bob2i + bih2i > 4){ 
      error = new AlertDialog.Builder(this); 
      error.setMessage("No more than four bags per team are allowed./n" 
       +"Please review your scores."); 

      error.setNeutralButton("Ok", 
       new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface arg0, int arg1) { 
        Toast.makeText(getApplicationContext(), "Review", 
        Toast.LENGTH_SHORT).show(); 
       } 
       }); 
       error.show(); 
      } 
     } 
    } 

我再有,如果没有错误如果事情警告对话框上点击按钮问题的Android

我在第4行“的构造AlertDialog.Builder(新景观得到错误会发生什么的else语句。 OnClickListener(){})是Eclipse未定义”

+0

请小心格式化,将行缩短以防止水平滚动条使读取代码更容易;) – Merlin

回答

1

的符合:error = new AlertDialog.Builder(this);

行经View.OnClickListener当它应该被传递Context

当你在一个匿名类中时,你不能通过this作为Context

0

正如Scienceprodigy所说,错误是“这个”在匿名类中是未定义的。但是你仍然可以完成这项工作。假设您正在尝试在某个活动中使用MyActivity类来完成此操作。只是这样做:

error = new AlertDialog.Builder(MyActivity.this); 
0

你传递一个onClickListener()而不是Context的,因为使用匿名声明的。将其更改为:

b.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View arg0) { 
     if(bob1i + bih1i > 4 || bob2i + bih2i > 4){ 
      error = new AlertDialog.Builder(getApplicationContext()); 

      error.setMessage("No more than four bags per team are allowed./nPlease review your scores."); 

      error.setNeutralButton("Ok", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface arg0, int arg1) { 
        Toast.makeText(getApplicationContext(), "Review", Toast.LENGTH_SHORT).show(); 
       } 
      }); 
      error.show(); 
     } 
    } 
} 
相关问题