android MessageBox因为完成调用而没有显示,如何让这个函数等待ok然后关闭
public void msBox(String str,String str2) { AlertDialog.Builder dlgalert = new AlertDialog.Builder(this); dlgalert.setMessage(str2); dlgalert.setTitle(str); dlgalert.setPositiveButton("OK",null); dlgalert.setCancelable(true); dlgalert.create().show(); finish(); }
应该是这样的
public void msBox(String str,String str2) { AlertDialog.Builder dlgalert = new AlertDialog.Builder(this); dlgalert.setTitle(str); dlgalert.setMessage(str2); dlgalert.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { finish(); } }); dlgalert.setCancelable(true); dlgalert.create().show(); }
解决方法
见问题:
AlertDialog doesn’t wait for input
当用户在AlertDialog上单击“确定”时,您将必须实现回调(OnClickListener).
这一切都是因为Android对话框不是模态的(非阻塞调用程序线程)
dlgalert.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { // call your code here } });