2011-10-04 79 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(); 
     } 
    } 
} 
相關問題