どのようにAlertDialogをクリックして確定しますか?キャンセルする時消えません。

3193 ワード

http://hi.baidu.com/doyee/item/5e27c1155df589dcbf904246
        new AlertDialog.Builder(activity)
                .setView(view)
                .setCancelable(false)
                .setTitle("    ")
                .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int i) {
                        EditText userName = (EditText) view.findViewById(R.id.editText);
                        EditText userpwd = (EditText) view.findViewById(R.id.editText1);
                        try {
                            if (userName == null || userName.getText().toString().trim().length() == 0) {
                                //      
                                Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
                                field.setAccessible(true);
                                field.set(dialog, false);   //   false,         
                                dialog.dismiss();
                                ToastUtils.show(activity, "       ......");
                            } else if (userpwd == null || userpwd.getText().toString().trim().length() == 0) {
                                //      
                                Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
                                field.setAccessible(true);
                                field.set(dialog, false);      //   false,         
                                dialog.dismiss();
                                ToastUtils.show(activity, "      ......");
                            } else {
                                //         
                                ToastUtils.show(activity, "    ......");
                                Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
                                field.setAccessible(true);
                                field.set(dialog, true);//   true,        
                                dialog.dismiss();

                            }
                        } catch (Exception e) {

                        }


                    }
                })
                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        activity.finish();
                    }
                }
                )
                .create()
                .show();
閉じることができます
field.setAccess ible;field.set(dialog,true)//trueに設定すると、ダイアログを閉じることができます。クローズ禁止です。field.set(dialog,false)      //falseに設定すると、ダイアログを閉じられません。