如果按钮上的警报对话框点击问题android

时间:2011-10-04 00:28:25

标签: android alertdialog

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(); 
            }
        }
   }

然后,如果没有错误

,我会有一个else语句

我在第4行得到错误“构造函数AlertDialog.Builder(new View.OnClickListener(){})未定义”在eclipse中

3 个答案:

答案 0 :(得分:1)

以下行:error = new AlertDialog.Builder(this);

在传递View.OnClickListener时传递Context

当您进入匿名课程时,您无法将this作为Context传递。

答案 1 :(得分:0)

正如Scienceprodigy所说,错误是“这个”在匿名类中是未定义的。但你仍然可以做到这一点。假设您正在尝试使用类名MyActivity在某些Activity中执行此操作。就这样做:

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

答案 2 :(得分: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();   
        }
    }
}