Android设置Dialog点击按钮也不会关闭

    /**
     * 控制dialog是否能够关闭
     * @param dialog 想要控制的dialog
     * @param isCloseAble   true表示可以关闭 false表示不能关闭
     */
    private void setDialogCloseAbility(DialogInterface dialog, boolean isCloseAble) {
        try {

            Field field = dialog.getClass().getSuperclass()
                    .getDeclaredField("mShowing");

            field.setAccessible(true);

            field.set(dialog, isCloseAble);

        } catch (Exception e) {

            e.printStackTrace();

        }
    }

利用反射机制修改一个安卓里面的某个类的成员变量mShowing,当mShowing为false时,表示不能被关闭当mShowing为true时表示可以被关闭。在dialog的按钮的Onclick方法里调用上面的方法即可。

你可能感兴趣的:(Dialog,安卓开发)