Store every operation in a list, then if you want to undo something just remove the last thing you put into the list. A linkedlist or a stack would work.
Pseudocode
Stack<Action> operations=new Stack<Action>();
Stack<Action> redos=new Stack<Action>();
Every time user have done something do
operations.push(new Action(actiontype,ccoordinates));
for undo
redoes.push(operations.pop());
to redo
operations.push(redos.pop());
and in your onDraw() method you draw everything thath is in operations...