public void ReDoORUndo(boolean flag) { if (!IsShowing) { ReDoOrUnDoFlag = true; try { if (flag) { Log.e("redo", ""); ReDoNodes.add(pathNode.getTheLastNote()); pathNode.deleteTheLastNote(); preview(pathNode.getPathList()); invalidate(); // ReDoOrUnDoFlag = true; // if(!isShowing()) // preview(pathNode.getPathList()); } else { Log.e("undo", ""); pathNode.addNode(ReDoNodes.get(ReDoNodes.size() - 1)); ReDoNodes.remove(ReDoNodes.size() - 1); preview(pathNode.getPathList()); // ReDoOrUnDoFlag = true; // if(!isShowing()) // preview(pathNode.getPathList()); } } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); showCustomToast("无法操作=-="); } } }