使用的是java裡面的反射機制:
dialog = new AlertDialog.Builder(MainActivity.this);dialog.setTitle("輸入使用者名稱:");dialog.setPositiveButton("start",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogq, int which) {Field field;try {field = dialogq.getClass().getSuperclass().getDeclaredField("mShowing");field.setAccessible(true);// 設定mShowing值,欺騙android系統field.set(dialogq, false);//如果為true則會推出} catch (NoSuchFieldException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});dialog.setNegativeButton("stop", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}});dialog.setView(linear);