如何添加消息框与确定button

我想用OKbutton显示一个消息框。 我使用下面的代码,但它会导致与参数编译错误:

AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this); dlgAlert.setMessage("This is an alert with no consequence"); dlgAlert.setTitle("App Title"); dlgAlert.setPositiveButton("OK", null); dlgAlert.setCancelable(true); dlgAlert.create().show(); 

我应该如何去在Android中显示一个消息框?

我觉得可能有问题,你没有添加点击侦听器确定正面的button。

 dlgAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //dismiss the dialog } }); 

因为在你的情况下,你只想通过一个简短而简单的消息来通知用户, Toast会提供更好的用户体验。

 Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show(); 

如果你有一个更长的消息,你想让读者有时间阅读和理解,那么你应该使用一个DialogFragment 。 (目前文档build议将AlertDialog在一个片段中,而不是直接调用它。)

创build一个扩展DialogFragment的类:

 public class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the Builder class for convenient dialog construction AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("App Title"); builder.setMessage("This is an alert with no consequence"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // You don't have to do anything here if you just // want it dismissed when clicked } }); // Create the AlertDialog object and return it return builder.create(); } } 

然后在您的活动中需要时调用它:

 DialogFragment dialog = new MyDialogFragment(); dialog.show(getSupportFragmentManager(), "MyDialogFragmentTag"); 

也可以看看

  • 带有一个,两个和三个button的Android警报对话框

在这里输入图像说明

代码为我编译好。 可能是你忘记添加导入:

 import android.app.AlertDialog; 

无论如何,你有一个很好的教程在这里 。

 @Override protected Dialog onCreateDialog(int id) { switch(id) { case 0: { return new AlertDialog.Builder(this) .setMessage("text here") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { try { }//end try catch(Exception e) { Toast.makeText(getBaseContext(), "", Toast.LENGTH_LONG).show(); }//end catch }//end onClick() }).create(); }//end case }//end switch return null; }//end onCreateDialog