2012-10-10 81 views
0

为什么编译器在下面的代码中显示setPositiveButton和setNegativeButton的错误。如果我使用setButton,则没有错误,但只允许我在警报对话框上显示一个按钮。我想要2个按钮。根据许多教程,必须使用setPositiveButton和setNegativeButton设置两个按钮的提示对话框。为什么会为这些编译错误?警报对话,如何让两个按钮都出现

public void onClick(View v) { 

     AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create(); 
     alert.setTitle("Confirm Edit"); 
     alert.setMessage("do you want to save edits?"); 

     alert.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
      // launches other activity if the user presses the OK button 
       Intent myIntent = new Intent(MainActivity.this, TestScreen.class); 
      MainActivity.this.startActivity(myIntent); 

      Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show(); 

      } 
     }); 

     alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show(); 
       dialog.cancel(); 
      } 
     }); 
     alert.show(); 


    } 
}); 

回答

0

你的代码是正确的,只有你需要改变一点点。使用Builder类创建AlertDialog。

Builder builder = new AlertDialog.Builder (MainActivity.this); 
builder.setTitle ("Confirm Edit"); 
builder.setMessage("do you want to save edits?"); 

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
      // launches other activity if the user presses the OK button 
       Intent myIntent = new Intent(MainActivity.this, TestScreen.class); 
      MainActivity.this.startActivity(myIntent); 

      Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show(); 

      } 
     }); 

     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show(); 
       dialog.cancel(); 
      } 
     }); 


// Now finally showing Alert Dialog. 
AlertDialog alert = builder.create(); 
alert.show(); 
+0

谢谢。它现在有效 – Kevik