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